Запитання з тегом «object-oriented»

Методологія, яка дозволяє моделювати систему як сукупність об'єктів, якими можна модульно керувати та керувати ними

4
Що це означає, коли можна сказати "Інкапсулювати те, що змінюється"?
Один із принципів ООП, на які я натрапив, це: -Екапсулювати те, що змінюється. Я розумію, що означає буквальне значення фрази, тобто приховати те, що змінюється. Однак я не знаю, як саме це сприяло б кращому дизайну. Чи може хтось пояснити це, використовуючи хороший приклад?

5
Чи є хорошою практикою уникати констант за допомогою геттерів?
Чи є хорошою практикою замінити константи, які використовуються поза класами, геттерами? Як приклад, краще використовувати if User.getRole().getCode() == Role.CODE_ADMINабо if User.getRole().isCodeAdmin()? Це призвело б до цього класу: class Role { constant CODE_ADMIN = "admin" constant CODE_USER = "user" private code getRoleCode() { return Role.code } isCodeAdmin () { return Role.code …

6
Чи добре, що інтерфейси містять метод, який повертає конкретний тип реалізації у вигляді константи?
Я дуже часто опиняюся в ситуації, коли мені потрібна інша поведінка компонента, що залежить від конкретного типу іншого інтерфейсу. Щоб проілюструвати своє запитання, я написав невеликий фрагмент коду, який покаже, що я маю на увазі. У цьому прикладі я намагаюся інстанціювати харчовий об’єкт від тваринного предмета. interface Animal { void …


8
Чи повинен мій послідовний збірник починатися з індексу 0 або індексу 1?
Я створюю об’єктну модель для пристрою, який має кілька каналів. Іменники, що вживаються між клієнтом і мною, є Channelі ChannelSet. ("Набір" не є семантично точним, оскільки він впорядкований, а правильний набір - не. Але це проблема в інший час.) Я використовую C #. Ось приклад використання ChannelSet: // load a …


5
Чому погано писати щось мовою X, як ніби ви пишете програму мовою Y з точки зору використання загальної парадигми кодування [закрито]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 5 років тому . Нещодавно я поставив запитання на запитання про щось, що написано на C ++, але …

4
Чому Java не використовує інкапсуляцію з деякими класами?
Моє запитання пов'язане з класами System.inта System.outкласами (можуть бути такі, як у бібліотеці Standard). Чому так? Це не погана практика в ООП? Чи не слід його використовувати так: System.getIn()і System.getOut()? У мене завжди було це запитання, і я сподіваюся, що тут знайду хорошу відповідь.

4
Як слід додати функціональність об'єкту, який вже існує?
У мене є інтерфейс, який має певну кількість чітко визначених функціональних можливостей. Скажімо: interface BakeryInterface { public function createCookies(); public function createIceCream(); } Це добре працює для більшості реалізацій інтерфейсу, але в декількох випадках мені потрібно додати деякі нові функціональні можливості (наприклад, можливо, перекладені на новий метод createBrownies()). Очевидним / …

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


4
Уточнити відкритий / закритий принцип
Як я вже це пояснював, принцип відкритого / закритого типу визначає, що колись написаний код не слід змінювати (окрім виправлень помилок). Але якщо зміни моїх правил бізнесу не слід змінювати код, що впроваджує ці зміни? Я підозрюю, що я щось не розумію, як цей принцип, тому що він не має …

10
Це анти-візерунок, якщо властивість класу створює та повертає новий екземпляр класу?
У мене є клас, який називається Headingдекількома речами, але він також повинен мати можливість повернути протилежне поточному значенню заголовка, яке нарешті має бути використане шляхом створення нового примірника самого Headingкласу. У мене може бути проста властивість, викликана reciprocalдля повернення протилежного заголовка поточного значення, а потім вручну створити новий екземпляр класу …

5
Чи розумне використання оператора явного кастингу розумним чи поганим злом?
У мене великий об’єкт: class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } і спеціалізований об'єкт, схожий на DTO: class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;} public string FieldN {get;set;} } Я особисто знаходжу концепцію …

10
Який правильний спосіб моделювати цю діяльність у реальному світі, яка, здається, потребує кругових посилань в OOP?
Я боровся з проблемою в проекті Java про кругові посилання. Я намагаюся моделювати ситуацію в реальному світі, за якої, здається, що об'єкти, про які йдеться, взаємозалежні і потрібно знати один про одного. Проект - це загальна модель гри в настільну гру. Основні класи неспецифічні, але розширені, щоб розглянути особливості шахів, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.