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

Загальні вказівки щодо проектування класів з найкращими відомими галузевими методами.

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

3
Як повинен бути розроблений клас `Співробітник`?
Я намагаюся створити програму для управління працівниками. Однак я не можу зрозуміти, як створити Employeeклас. Моя мета - вміти створювати та маніпулювати даними працівника в базі даних за допомогою Employeeоб’єкта. Основна реалізація, про яку я думав, була така проста: class Employee { // Employee data (let's say, dozens of properties). …

2
Класи Python лише з одним екземпляром: Коли створити (єдиний) екземпляр класу і коли замість цього працювати з класом?
Дано клас Python, який буде інстанціюватися лише один раз, тобто буде лише один об'єкт класу. Мені було цікаво, в яких випадках має сенс створити один екземпляр класу, а не працювати безпосередньо з класом. Існує подібне питання , але воно має іншу спрямованість: йдеться про групування глобальних змінних та функцій у …

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

4
Використовувати введення залежностей для об'єктів даних?
Я просто вчуся про ін'єкцію залежності, і я зациклююся на чомусь. Dependency Injection рекомендує надсилати залежні класи через конструктор, але мені цікаво, чи це необхідно для об'єктів даних. Оскільки Unit-Testability є однією з головних переваг DI, чи буде об'єктом даних, який зберігає дані, а не будь-які процедури ніколи не перевіряються …

2
Куди покласти загальне підключення до бази даних для моїх класів
У мене є кілька класів (Репозиторії), які виконують завдання збереження / отримання деяких об'єктів у / з бази даних; всі вони повинні встановити з'єднання з однією базою даних. Я думав, щоб уникнути переосмислення ConnectionStringтаSqlConnection в кожному класі, передаючи відкрите з'єднання з ними. Тоді де / коли найкраще місце / час …
11 c#  sql  class-design 

5
Як вирішити взаємозалежність класу в моєму коді C ++?
У моєму проекті C ++ я маю два класи Particleта Contact. У Particleкласі у мене є змінна члена, std::vector<Contact> contactsяка містить усі контакти Particleоб'єкта, і відповідні функції члена getContacts()та addContact(Contact cont). Таким чином, у "Particle.h" я включаю "Contact.h". У Contactкласі я хотів би додати код до конструктора для Contactцього виклику …

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

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

5
Чи можете ви "Порожні" конспект / класи?
Звичайно, можна, мені просто цікаво, чи раціонально проектувати таким чином. Я робив клон прориву і робив якийсь дизайн класу. Я хотів використати спадщину, хоча мені і не потрібно, застосовувати те, що я навчився на C ++. Я думав про дизайн класу і придумав щось подібне: GameObject -> базовий клас (складається …

4
Чи може перейменування методу зберегти інкапсуляцію?
Я читав цю сторінку про те, коли геттери / сетери виправдані, і ОП дав такий зразок коду: class Fridge { int cheese; void set_cheese(int _cheese) { cheese = _cheese; } int get_cheese() { return cheese; } } void go_shopping(Fridge fridge) { fridge.set_cheese(fridge.get_cheese() + 5); } У прийнятій відповіді зазначено: До …

5
Занадто велика кількість абстракцій робить код важко розширити
У мене виникають проблеми з тим, що я відчуваю, що це занадто велика абстракція в кодовій базі (або принаймні справу з цим). Більшість методів у кодовій базі були абстраговані для того, щоб прийняти найвищий з батьків у кодовій базі даних, але дитина B цього батька має новий атрибут, який впливає …

4
Як сперечатися з цією «повністю публічною» умовою дизайну класу бізнес-об’єктів
Ми проводимо багато тестування та рефакторинг наших бізнес-об’єктів, і, здається, у мене дуже різні думки щодо дизайну класів, ніж інші колеги. Приклад класу, який я не шанувальник: public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; public Foo() { } …

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

5
Як ми знаємо, що користь композиції над узагальненням завжди є правильним вибором?
Будь-який об'єкт фізично існує чи ні, ми можемо вибрати його моделювати різними способами. Ми могли б довільно використовувати узагальнення чи склад у багатьох випадках. Однак принцип GoF "користь композиції над узагальненням [sic]" керує нами використанням композиції. Отже, коли ми моделюємо, наприклад, рядок, тоді ми створюємо клас, який містить два члени …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.