Объекты. Стильное ООП
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Объекты. Стильное ООП

Alex F.
Alex F.дәйексөз келтірді2 жыл бұрын
Признак хорошего тона — не делать ничего в конструкторе кроме того, что необходимо. А все, что необходимо, — это проверять предоставленные аргументы, а затем присваивать их в качестве значения для свойств сервиса.
2 Ұнайды
Комментарий жазу
данил савин
данил савиндәйексөз келтірді8 ай бұрын
В конце концов, хуже газетной статьи, написанной в стиле признания в любви, может быть только признание в любви, написанное в стиле газетной статьи.
1 Ұнайды
Комментарий жазу
Ярослав П.
Ярослав П.дәйексөз келтірді4 күн бұрын
Если поведение, которое вы хотите изменить, еще не представлено зависимостью, извлеките его, введя абстракцию: концепцию более высокого уровня и интерфейс.
Комментарий жазу
Денис Самойлов
Денис Самойловдәйексөз келтірді5 күн бұрын
Не применяйте наследование для изменения поведения сервиса путем переопределения его методов. Всегда ищите решения, использующие композицию объектов. А лучше полностью закройте все классы для наследования: пометьте их как final и сделайте все свойства и методы private, если они не являются частью открытого интерфейса класса.
Комментарий жазу
Денис Самойлов
Денис Самойловдәйексөз келтірді5 күн бұрын
Если поведение, которое вы хотите изменить, еще не представлено зависимостью, извлеките его, введя абстракцию: концепцию более высокого уровня и интерфейс. Тогда вы получите часть, которую можно заменить, а не модифицировать. Абстракция предлагает возможность создавать и декорировать модели поведения, чтобы усложнять их без информирования (или изменения) исходного сервиса.
Комментарий жазу
Денис Самойлов
Денис Самойловдәйексөз келтірді5 күн бұрын
Если необходимо изменить поведение сервиса, ищите способы настроить это поведение с помощью аргументов конструктора. Если такой способ не подходит, потому что придется менять значительную часть логики, поищите способы замены зависимостей, которые также передаются в качестве аргументов конструктора
Комментарий жазу
Денис Самойлов
Денис Самойловдәйексөз келтірді5 күн бұрын
Единственное исключение из этого правила — задание иерархии объектов. В таком случае расширение родительского класса может указывать на связь между этими объектами: подкласс следует рассматривать как частный случай родительского класса.
Комментарий жазу
Денис Самойлов
Денис Самойловдәйексөз келтірді5 күн бұрын
изменение поведения с помощью композиции объектов вместо наследования — лучший и более гибкий способ.
Комментарий жазу
Денис Самойлов
Денис Самойловдәйексөз келтірді5 күн бұрын
Это же заставит пользователей искать лучшие способы изменить его поведение.
Комментарий жазу
Ярослав П.
Ярослав П.дәйексөз келтірді6 күн бұрын
Первый пример — это метод getItems(), который возвращает товары в корзине, чтобы клиент мог их подсчитать. Вместо того чтобы раскрывать сами товары, корзина может содержать метод для подсчета товаров.
Комментарий жазу