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

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

9
Спадщина пішла не так
У мене є якийсь код, де хороша модель успадкування пішла вниз, і я намагаюся зрозуміти, чому і як це виправити. В основному, уявіть, що у вас є ієрархія зоопарку: class Animal class Parrot : Animal class Elephant : Animal class Cow : Animal тощо. У вас є ваші методи харчування …

8
Об'єктно-орієнтований дизайн класу
Мені було цікаво хороший об’єктно-орієнтований дизайн класу. Зокрема, мені важко вирішувати такі варіанти: метод статичного проти екземпляра метод без параметрів або поверненого значення проти методу з параметрами і значення повернення перекриття та окрема функціональність методу приватний проти публічний метод Приклад 1: Ця реалізація використовує методи екземплярів, без поверненого значення або …

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

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

12
Чи C ++ не підходить для OOP? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

4
Чому не існує послідовного визначення суттєвих понять для ООП?
Я дуже новачок у програмуванні та трохи заплутаний у читанні \ слуханні різних конвенцій з різних джерел: Чи об'єктно-орієнтоване програмування має 4 або 5 понять? Як новачок я розумію, що це 5 понять: Абстракція Спадщина Інкапсуляція Поліморфізм Модульність То чому я не знаходжу більш "суворого" визначення, і, здається, існує кілька …

4
Паралельні ієрархії - частково однакові, частково різні
Є дуже багато подібних питань 1 ,2 ,3 ,4 , але в цьому питанні це не так, і рішення не здаються оптимальними. Це загальне питання про ООП, припускаючи, що наявні поліморфізм, генерики та міксини. Фактична мова, якою слід скористатись, є OOP Javascript (Typescript), але це та сама проблема в Java …

7
Як розвинувся OOP, щоб включити поняття "Властивості"
Я походив із C ++, і я збираюся виводити C # у своїй теперішній роботі, і я просто читав багато запитань і запитань про те, яка різниця між загальнодоступними полями та властивостями та всіма спинками та перевагами у варіаціях та втіленнях цього основне запитання (наприклад, ця публікація "SO" та всі …

3
Принцип інверсії залежності від "Програма на інтерфейс, а не реалізація"
Я намагаюся зрозуміти, чим принцип інверсії залежності залежить від принципу "програма на інтерфейс, а не на реалізацію". Я розумію, що означає "Програма на інтерфейс, а не реалізація". Я також розумію, як це дозволяє зробити більш гнучкими та ретельними конструкції. Але я не розумію, чим принцип інверсії залежності залежить від принципу …

1
Використання шаблону відвідувачів з великою ієрархією об'єктів
Контекст Я використовував з ієрархією об'єктів (дерево виразів) "псевдо" шаблон відвідувача (псевдо, так як в ньому не використовується подвійна відправка): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } Цей …

3
Чи повинен основний метод складатися лише із створення об'єктів та викликів методів?
Мій друг сказав мені, що найкраща практика - mainметод, що містить клас, повинен бути названий Mainі містить лише mainметод. Також mainметод повинен аналізувати лише входи, створювати інші об'єкти та викликати інші методи. MainКлас і mainметод не повинен робити нічого іншого. В основному те, що він говорить, що mainметод, що містить …

3
Які типові угоди про іменування для державних та приватних функцій OO C? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 4 роки тому . Коротке запитання Чи існує типовий спосіб назвати "публічних" та "приватних" членів проекту OO C? …

3
Як ви підходите до дизайну класів в ООП?
Коли я намагаюся створити рішення OO, я, як правило, використовую моделювання CRC, в якому перераховую назви класів (іменники), що вони роблять (дієслова) та як вони співпрацюють з іншими класами. Цей блог має нижче сказати про цей іменниково-дієслівний підхід ...This approach, which I will call “noun and verb,” is so limited …

5
Чи використовуєте ви переваги принципу відкритого закриття?
Принцип відкритого закриття (OCP) говорить, що об'єкт повинен бути відкритим для розширення, але закритим для модифікації. Я вважаю, що я це розумію і використовую разом із SRP для створення класів, які виконують лише одне. І я намагаюся створити багато маленьких методів, які дозволять витягти всі елементи контролю поведінки в методи, …

2
Винятки в DDD
Я вивчаю DDD і замислююся над тим, щоб кинути винятки в певних ситуаціях. Я розумію, що об'єкт не може перейти в поганий стан, тому тут винятки є прекрасними, але в багатьох прикладах винятки також є, наприклад, якщо ми намагаємося додати нового користувача з наявною електронною поштою в базу даних. public …

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