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

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

6
Як мислити як програміст C після зміщення мови OOP? [зачинено]
Раніше я використовував лише об'єктно-орієнтовані мови програмування (C ++, Ruby, Python, PHP), і зараз навчаюсь C. Мені важко з'ясувати правильний спосіб робити речі мовою без поняття 'Об’єкт'. Я усвідомлюю, що можна використовувати парадигми OOP в C, але я хотів би дізнатися C-ідіоматичний спосіб. При вирішенні проблеми програмування перше, що я …

5
Збереження об'єкта за допомогою власного методу чи через інший клас?
Якщо я хочу зберегти та отримати об'єкт, чи слід створити інший клас для обробки, чи краще це зробити у самому класі? А може, змішати обидва? Що рекомендується відповідно до парадигми OOD? Наприклад Class Student { public string Name {set; get;} .... public bool Save() { SqlConnection con = ... // …

6
Чому погана зв'язок між функціями та даними погана?
Цю цитату я знайшов у « Радості Клоджура » на с. 32, але хтось сказав те ж саме мені під час вечері минулого тижня, і я чув це також і в інших місцях: Недоліком об'єктно-орієнтованого програмування є тісний зв'язок між функцією та даними. Я розумію, чому непотрібна зв'язок погана в …

7
Як я можу переглянути свій прогрес як сольний молодший розробник [закрито]
Зараз я працюю в компанії на 2 особи, як соло-первинний розробник. Мій бос отримує клієнтів, знущається над шаблонами дизайну PNG і передає їх мені. Ця система працює чудово, і мені дуже подобається. Типи проектів, над якими я працюю, призначені для малого та середнього бізнесу, і вони, як правило, хочуть мати …

5
Передати ідентифікатор або об’єкт?
Надаючи метод бізнес-логіки для отримання об'єкта домену, чи повинен параметр приймати об'єкт або ідентифікатор? Наприклад, чи слід це робити: public Foo GetItem(int id) {} або це: public Foo GetItem(Foo foo) {} Я вірю в передачу об'єктів навколо, у всій їх повноті, але як бути з цим випадком, коли ми отримуємо …

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

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

11
Чи застарілі заняття / методи застарілі?
Я використовував для створення багатьох абстрактних класів / методів. Потім я почав використовувати інтерфейси. Зараз я не впевнений, чи інтерфейси не роблять абстрактні класи застарілими. Вам потрібен повністю абстрактний клас? Створіть замість цього інтерфейс. Вам потрібен абстрактний клас з деякою реалізацією в ньому? Створіть інтерфейс, створіть клас. Успадкуйте клас, реалізуйте …

17
Як я можу почуватись впевненіше у своїх навичках програмування? [зачинено]
Програмування мені не чуже. Я вперше почав робити розмітку (HTML, тепер, будь ласка, не смійтесь з мене), коли мені було 12, і трохи БАЗОВО, коли мені було 13 (я знав багато про блок-схеми, псевдокоди в цей момент), але потім мені попросили Біологія в середній школі, а отже, пропустила "справжні" знання …

2
Чому методи, що приймають необмежену кількість параметрів, часто визначають перевантаження з меншою кількістю параметрів?
Наприклад, System.IO.Path.Combineметод у .NET має такі перевантаження: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) У чому сенс останніх трьох? Перший охоплював би їх усіх, так як якщо ви уважно придивитесь, він використовує paramsключове слово. Аргумент зворотної сумісності охоплював би лише Combine(String, String)варіант, оскільки він був єдиною …

8
Чи повинні бути визначені можливості об'єкта виключно за допомогою інтерфейсів, які він реалізує?
isОператор C # і оператор Java instanceofдозволяють вам розгалужувати інтерфейс (або, ще більш чітко, його базовий клас), реалізований екземпляром об'єкта. Чи доцільно використовувати цю функцію для розгалуження високого рівня на основі можливостей, які надає інтерфейс? Або базовий клас повинен надавати булеві змінні для надання інтерфейсу для опису можливостей, які має …

5
Як визначати, що метод може бути замінений більш сильним зобов'язанням, ніж визначення того, що метод може бути названий?
Від: http://www.artima.com/lejava/articles/designprinciples4.html Еріх Гамма: Я все ще думаю, що це правда навіть через десять років. Спадкування - це класний спосіб змінити поведінку. Але ми знаємо, що він крихкий, тому що підклас може легко робити припущення щодо контексту, в якому називається метод, який він перекриває. Між базовим класом і підкласом існує …

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

5
Коли я повинен розширити клас Java Swing?
Моє сучасне розуміння реалізації Успадкування полягає в тому, що слід розширювати клас лише тоді, коли є відношення IS-A . Якщо батьківський клас може додатково мати більш конкретні дочірні типи з різною функціональністю, але вони матимуть спільні елементи, абстраговані у батьків. Я ставлю під сумнів це розуміння через те, що рекомендує …

5
Чи є гарною практикою створення ClassCollection іншого класу?
Скажемо, у мене Carклас: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } Скажімо, ми створюємо систему щодо паркування, я буду використовувати багато Carкласу, тому ми робимо CarCollectionклас, він може мати кілька додаткових …

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