Запитання з тегом «design-principles»

2
Чи є якісь принципи ОО, які практично застосовні для Javascript?
Javascript - це об'єктно-орієнтована мова, заснована на прототипі, але вона може стати класною на різних способах: Написання функцій, які слід використовувати як класи самостійно Використовуйте вишукану систему класів у рамках (наприклад, mootools Class.Class ) Створіть це з Coffeescript На початку я прагну писати код на основі класу в Javascript і …

9
Що може піти не так, якщо порушено принцип заміни Ліскова?
Я слідкував за цим високоголосним питанням щодо можливого порушення принципу заміни Ліскова. Я знаю, що таке принцип заміни Ліскова, але все ще не ясно в моєму розумінні, що може піти не так, якщо я як розробник не замислююся над принципом під час написання об'єктно-орієнтованого коду.

1
Чи застосовується Принцип заміщення Ліскова також для класів, що реалізують інтерфейс?
LSP заявляє, що класи повинні бути замінними для їх базових класів, тобто похідні та базові класи повинні бути семантично еквівалентними. Але чи застосовується також LSP для класів, що реалізують інтерфейс? Іншими словами, якщо метод інтерфейсу, реалізований класом, семантично відрізняється від того, що очікує, що це буде користувач, чи вважатиметься це …

6
Вільна муфта в об'єктно-орієнтованому дизайні
Я намагаюся навчитися GRASP, і я виявив, що це пояснено ( тут, на сторінці 3 ) про низьке з'єднання, і я був дуже здивований, коли виявив це: Розглянемо метод addTrackдля Albumкласу, два можливі методи: addTrack( Track t ) і addTrack( int no, String title, double duration ) Який метод зменшує …

4
Яким чином Закон Деметра застосовується до об'єктно-орієнтованих систем щодо зв'язку та згуртованості? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 6 років тому . Як Закон Деметра застосовується до об'єктно-орієнтованих систем із з'єднанням та згуртованістю? Я читав книгу …

3
Два суперечливих визначення Принципу поділу інтерфейсу - яке з них є правильним?
Читаючи статті про Інтернет-провайдера, схоже, є два суперечливих визначення ISP: Згідно з першим визначенням (див. 1 , 2 , 3 ), ISP зазначає, що класи, що реалізують інтерфейс, не повинні змушувати реалізовувати функції, які їм не потрібні. Таким чином, жировий інтерфейсIFat interface IFat { void A(); void B(); void C(); …

1
Як перевірити принцип заміщення Ліскова в ієрархії спадкування?
Натхненний цією відповіддю: Принцип заміщення Ліскова вимагає цього Передумови не можна посилити в підтипі. Послідовності не можуть бути ослаблені в підтипі. Інваріанти супертипу повинні зберігатися в підтипі. Обмеження історії ("правило історії"). Об'єкти вважаються модифікованими лише завдяки їх методам (інкапсуляція). Оскільки підтипи можуть вводити методи, відсутні в супертипі, то введення цих …

5
Чи є суттєві недоліки залежно від абстракцій?
Я читав цю вікі за принципом стабільних абстракцій (SAP) . SAP зазначає, що чим стабільніший пакет, тим абстрактнішим він повинен бути. Це означає, що якщо пакет менш стабільний (з більшою ймовірністю зміниться), він повинен бути більш конкретним. Те, що я насправді не розумію, це так. Напевно, у всіх випадках, незалежно …

5
Коли припинити спадщину?
Колись тому я задав запитання на стек Overflow про спадщину. Я вже казав, що розробляю шаховий двигун модою OOP. Таким чином, я успадковую всі мої п'єси від абстрактного класу Piece, але спадщина все ще залишається. Дозвольте мені показати за кодом public abstract class Piece { public void MakeMove(); public void …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.