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

Об'єктно-орієнтоване проектування - це процес планування системи взаємодіючих об’єктів з метою вирішення програмної проблеми.


7
Чому ланцюжок сетерів нетрадиційний?
Ведення ланцюга на бобах дуже зручно: не потрібно перевантажувати конструкторів, мегаконструкторів, заводів, а також підвищує читабельність. Я не можу придумати жодних недоліків, якщо ви не хочете, щоб ваш об’єкт був непорушним , і в такому випадку у нього все одно не було б ніяких сетерів. Тож є причина, чому це …

4
Поширення винятків: Коли я можу ловити винятки?
MethodA викликає MethodB, який, в свою чергу, викликає MethodC. У методіB або MethodC немає обробляння винятків. Але в MethodA є обробка винятків. У MethodC відбувається виняток. Тепер цей виняток перекидається до MethodA, який обробляє його належним чином. Що з цим не так? На мою думку, в якийсь момент абонент виконує …

3
Куди подіти бізнес-логіку в дизайні MVC?
Я створив просту програму Java MVC, яка додає записи через форми даних до бази даних. Мій додаток збирає дані, також перевіряє їх і зберігає. Це тому, що дані отримують в Інтернеті від різних користувачів. дані мають в основному числовий характер. Тепер на числових даних, що зберігаються в базі даних (SQL-сервер), …

10
Як одиничні тести полегшують дизайн?
Наш колега рекламує тести написання одиниць, оскільки насправді допомагає нам удосконалити наші дизайнерські та рефакторні речі, але я не розумію як. Якщо я завантажую файл CSV і аналізую його, як тест одиниці (перевірка значень у полях) допоможе мені перевірити дизайн? Він згадав про зв'язок і модульність і т. Д., Але …

8
Клас, який нічого не представляє - це правильно?
Я просто розробляю свою заявку, і я не впевнений, чи правильно я розумію SOLID і OOP. Класи повинні робити одну справу і робити це добре, але з іншого боку, вони повинні представляти реальні об'єкти, з якими ми працюємо. У моєму випадку я роблю вилучення функції на наборі даних, а потім …

9
Програмування для подальшого використання інтерфейсів
У мене поруч сидить колега, який розробив такий інтерфейс: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Проблема полягає в тому, що зараз ми не використовуємо цей параметр "кінець" ніде в нашому коді, він просто є, тому що, можливо, доведеться використовувати його …

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

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

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

5
Чому успадковувати клас та не додавати властивості?
Я знайшов дерево спадкування у нашій (досить великій) кодовій базі, яка має щось подібне: public class NamedEntity { public int Id { get; set; } public string Name { get; set; } } public class OrderDateInfo : NamedEntity { } З того, що я міг зібрати, це в першу чергу …

13
Чи неправильно використовувати булевий параметр для визначення значень?
Згідно Чи неправильно використовувати булевий параметр для визначення поведінки? , Я знаю важливість уникати використання булевих параметрів для визначення поведінки, наприклад: оригінальна версія public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } Нова версія: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } Але як …

9
Чи потрібно завжди писати об'єктно-орієнтований код, дотримуючись схему дизайну?
Чи можлива схема дизайну для будь-якої об'єктно-орієнтованої програми? Я запитую це тому, що нещодавно я побачив реалізацію Doorкласу з a Lock. Це було частиною тесту, у відповіді сказано, що код відповідає шаблону Null Object: class Lock { public: virtual void close() = 0; virtual void open() = 0; virtual bool …

8
Чи стає OOP легше чи складніше? [зачинено]
Коли концепції об'єктно-орієнтованого програмування були впроваджені програмістами ще тому, це виглядає цікаво, а програмування було більш чистим. OOP був такий Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); Це було легше зрозуміти під назвою, що само описується. Але тепер OOP з таким малюнком, як об'єкти передачі даних, об'єкти цінності, сховище, введення …

6
Як я перевіряю систему, де над об'єктами важко знущатися?
Я працюю з наступною системою: Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern Нещодавно у нас виникла проблема, коли я оновлював версію бібліотеки, якою я користувався, яка, серед іншого, спричинила зміну часових позначок (які повертається сторонніми бібліотеками long) з мілісекунд після епохи на наносекунд …

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