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

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

3
Чи існують мови OO без успадкування?
Під час огляду коду сьогодні мій колега сказав щось цікаве: prototypeкорисна лише тоді, коли вам потрібна спадщина - а коли спадщина колись гарна ідея ? Я подумав над цим і зрозумів, що зазвичай використовую спадщину, щоб обійти код, який був погано розроблений в першу чергу. Сучасний стиль OO віддає перевагу …

7
Шаблони розповсюдження змінюють модель об'єкта ..?
Ось загальний сценарій, який завжди мені страждає. У мене є об'єктна модель з батьківським об'єктом. Батько містить деякі дочірні об’єкти. Щось на зразок цього. public class Zoo { public List<Animal> Animals { get; set; } public bool IsDirty { get; set; } } Кожен дочірній об’єкт має різні дані та …

9
Принципи та назви OOP
class Boxer: def punch(self, punching_bag, strength): punching_bag.punch(strength) class PunchingBag: def punch(self, strength): print "Punching bag punched with strength", strength boxer = Boxer() punching_bag = PunchingBag() boxer.punch(punching_bag, 2) Не сумнівайтеся, що punchце гарне ім'я методу у випадку з боксером. Але чи punchдобре також ім'я для методу штампування мішка? В обох випадках …

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

1
Що вони назвали об'єктно-орієнтованим програмуванням до того, як Алан Кей винайшов цей термін?
Алан Кей стверджує, що "я склав термін" об'єктно-орієнтований ", і можу вам сказати, що я не мав на увазі C ++". Що він мав на увазі, звичайно, був Smalltalk. Але він сам не склав об'єктно-орієнтованого програмування; він отримав основні ідеї від Simula. Отже, якщо термін ще не був винайдений, як …

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

3
Як обробляти випадки відмов у конструкторі класу C ++?
У мене є клас CPP, конструктор якого робить деякі операції. Деякі з цих операцій можуть бути невдалими. Я знаю, що конструктори нічого не повертають. Мої запитання: Чи дозволено робити інші операції, які ініціалізують членів у конструкторі? Чи можна сказати викличній функції про те, що деякі операції в конструкторі не виконані? …

4
"Занадто об'єктно-орієнтований"
Я походжу з сильного OO, і я нещодавно почав працювати в організації, яка, хоча код написаний на Java, має набагато менший акцент на хороший дизайн OO, ніж те, до чого я звик. Мені сказали, що я ввожу "занадто велику абстракцію" і що замість цього я повинен кодувати так, як це …

5
Як уникнути гігантських методів клею?
На моїй теперішній роботі мені було доручено прибирати старий код кілька разів. Часто код - це лабіринт, а дані за ним ще більше заплутані. Мені здається, що я розбираю речі в приємні, акуратні, модульні методи. Кожен метод робить одне і робить це добре. Ось тоді все починає йти на південь …

5
Використання статичних класів як просторів імен
Це запитання було перенесено із переповнення стека, оскільки на нього можна відповісти на Exchange Stack Exchange. Мігрували 8 років тому . Я бачив інших розробників, які використовують статичні класи як простори імен public static class CategoryA { public class Item1 { public void DoSomething() { } } public class Item2 …

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

4
Як кардинально покращити охоплення коду?
Мені доручено отримати застарілу заявку під тест одиниці. Спочатку кілька відомостей про програму: це 600-кодова база LOC Java RCP з цими основними проблемами масове дублювання коду немає інкапсуляції, більшість приватних даних доступні ззовні, деякі бізнес-дані також робляться одинаковими, тому вони не тільки змінюються ззовні, але і звідусіль. немає абстракцій (наприклад, …

5
Чи порушують особливі випадки з запасною системою Принцип заміни Ліскова?
Скажімо, у мене є інтерфейс FooInterfaceіз таким підписом: interface FooInterface { public function doSomething(SomethingInterface something); } І конкретний клас, ConcreteFooякий реалізує цей інтерфейс: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Я хотів би ConcreteFoo::doSomething()зробити щось унікальне, якщо він передається спеціальному типу SomethingInterfaceоб'єкта (скажімо, він називається …

3
Generics vs загальний інтерфейс?
Я не пам'ятаю, коли я писав загальний клас минулого разу. Кожен раз, коли я думаю, що мені це потрібно після роздумів, я роблю висновок, що цього не роблю. Друга відповідь на це питання змусила мене попросити роз'яснення (оскільки я поки не можу коментувати, я поставила нове запитання). Тому візьмемо даний …

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

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