|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
||||||
Применение интерфейса14.05.2013, 18:03. Показов 1473. Ответов 15
Метки нет (Все метки)
есть код
Объясните плиз, зачем нам создавать calculator типа IValueCalculator ( что нам это даёт ? ) и зачем создавать public ShoppingCart, который берёт в качестве параметра любой объект типа IValueCalculator, если мы его нигде не используем. Судя по логике кода, мы Интерфейсу присвоили значение объекта интерфейса, как так? как по имени calculator мы вызвали в нем метод ValueProduct? почему нельзя было вместо calculator просто использовать "IValueCalculator"? если они оба одного и того же типа
0
|
||||||
| 14.05.2013, 18:03 | |
|
Ответы с готовыми решениями:
15
Как увидеть методы в классах, которые реализованы из интерфейса и перейти в них из интерфейса? |
|
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
|
|
| 14.05.2013, 18:35 | |
|
учитывая что у вас ОДИН класс реализует интерфейс то да, разницы между интерфейсом и тем что вы напишете прямо в классе никакой
однако, представьте на секунду что вам нужен еще один класс с этими же методами но реализованными абсолютно по другому а классу ShoppingCard должно быть строго фиолетово на конкретную реализацию - он просто вызывает метод, определенный в интерфейсе в случае интерфейса вы можете использовать разные классы реализующие его в разных экземплярах ShoppingCard, в случае если интерфейса не будет вам понадобится для двух классов калькулятора два класса ShoppingCard (или абстрактный класс от которого будут наследоваться калькуляторы)
0
|
|
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
|||
| 14.05.2013, 19:00 [ТС] | |||
|
0
|
|||
|
|
|||||||||||
| 14.05.2013, 19:33 | |||||||||||
|
Вот смотри - у тебя есть три класса: Книжки (class Book), Покупатели (class Buyer) и Работники (class Workers). На основе этих классов ты можешь создать массив списков
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
|||||||||||
| 15.05.2013, 11:41 [ТС] | |||||||||||
0
|
|||||||||||
|
Заблокирован
|
||
| 15.05.2013, 13:00 | ||
![]() Можно пожалуйста примерчик. Где у вас будет интерфейс в нем функция, которую потом не надо будет во всех классах писать.
0
|
||
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
|
| 15.05.2013, 13:30 [ТС] | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
||
| 15.05.2013, 14:46 [ТС] | ||
|
так а почему не придется? объясните плиз, не понятно же, и тем более не понятно, зачем нам .ToString() если она возвращает "book"
0
|
||
|
Master of Orion
|
|
| 15.05.2013, 16:20 | |
|
Listorat, вот вам пример, может по нему поймете
![]() http://blog.byndyu.ru/2009/12/... ZN9WMorh-A А лучше прочитайте всю серию принципов solid: http://blog.byndyu.ru/2009/10/... ZN9hsorh-B
0
|
|
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
|||||||
| 15.05.2013, 16:33 [ТС] | |||||||
0
|
|||||||
|
Master of Orion
|
|||||||||||||||||||||
| 15.05.2013, 16:44 | |||||||||||||||||||||
|
Listorat, ладно, представьте себе, что у нас есть класс птицы
0
|
|||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
||
| 15.05.2013, 16:44 [ТС] | ||
|
Если я ошибся , скажите плз
0
|
||
|
Master of Orion
|
|
| 15.05.2013, 16:45 | |
|
Listorat, ну вот, прекрасно все поняли. Главное не производительность, а косвенность. Слабая связанность - признак хорошей архитектуры. В программировании правило 80/20 выглядит как правило 95/5. То есть 5% кода выполняются 95% времени и наоборот. Поэтому есть смысл писать красивый код везде, а потом только в этих 5% курочить его ради производительности. А где курочить - решит профайлер.
1
|
|
|
1 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
|
|
| 15.05.2013, 16:54 [ТС] | |
|
0
|
|
| 15.05.2013, 16:54 | |
|
Помогаю со студенческими работами здесь
16
В программе два интерфейса и нужно чтобы при выводе сообщения в тексбоксе 1 интерфейса, текст сразу отображался Применение Применение C# применение c++ Применение стилей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|