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

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

3
Уникаючи конструкторів з багатьма аргументами
Тож у мене є завод, який створює об’єкти різних класів. Усі можливі класи походять від абстрактного предка. Фабрика має файл конфігурації (синтаксис JSON) і вирішує, який клас створити, залежно від конфігурації користувача. Щоб досягти цього, фабрика використовує boost :: property_tree для JSON-розбору. Він проходить птахом і вирішує, який конкретний об’єкт …

2
Для чого нам потрібен екземпляр класу сканерів, щоб отримати вхід на Java?
Java орієнтована на об'єкти, але чому нам потрібно створити об'єкт із класу сканерів, щоб отримати вхід? Не могли next(), наприклад, методи стати просто статичними? C виглядає на мене досить просто, як ви просто використовуєте scanf(), gets()або fgets(). Я впевнений, що розробникам Java є причина створення класу Scanner, але як це …

3
Спадкування: Чи код з надкласу практично * скопійований * у підклас, чи його * посилається на підклас *?
Клас Sub- це підклас класу Sup. Що це означає практично? Або іншими словами, яке практичне значення "спадкування"? Варіант 1: Код з Sup фактично копіюється в Sub. (як у "копіювати-вставити", але без скопійованого коду, який візуально відображається в підкласі). Приклад: methodA()метод, спочатку в Sup. Sub розширює Sup, тому methodA()його (практично) копіюють …

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

12
Чи "Якщо метод повторно використовується без змін, покладіть метод в базовий клас, а ще створіть інтерфейс"?
Мій колега придумав принципове правило вибору між створенням базового класу або інтерфейсу. Він каже: Уявіть кожен новий метод, який ви збираєтеся реалізувати. Для кожного з них врахуйте це: чи буде цей метод реалізований більш ніж одним класом саме в такому вигляді, без будь-яких змін? Якщо відповідь «так», створіть базовий клас. …

3
Терміналогія OOP в Ruby та C ++
Я приймаю клас С ++ у своїй школі. Оскільки я програмував у Ruby, я знаю деякі речі OOP. Але в C ++ є функції члена, змінні члена та статичні функції. У Ruby у нас є методи екземпляра, змінні екземпляра та змінні класу. І є ще ... З якої причини вони …


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

9
Що робити, якщо глобалісти мають сенс?
У мене є значення, яке потрібно багатьом об’єктам. Наприклад, фінансовий додаток з різними інвестиціями як об'єкти, і більшості з них потрібна поточна процентна ставка. Я сподівався закріпити своє "фінансове середовище" як об'єкт із відсотковою ставкою як власністю. Але об’єкти, які потребують цього значення, не можуть дістатися до нього. Тож як …

4
Дизайн-схема для обробки відповіді
Більшу частину часу, коли я пишу якийсь код, який обробляє відповідь на певний виклик функції, я отримую таку структуру коду: Приклад: Це функція, яка буде обробляти аутентифікацію для системи входу class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send …

2
найкраща практика для ініціалізації членів класу в php
У мене в конструкторах дуже багато такого коду: - function __construct($params) { $this->property = isset($params['property']) ? $params['property'] : default_val; } Чи краще це зробити, а не вказувати значення за замовчуванням у визначенні властивості? тобто public $property = default_val? Іноді існує значення логіки для значення за замовчуванням, а деякі значення за …

3
Коли перевантаження методу підходить?
Припустимо, я працюю над існуючою, досить великою системою. У мене є myObjectклас класу MyClass(для прикладу, припустимо, я працюю в Java). myObjectце композиція, що містить Collection, скажімо, а, Listта інші об'єкти, які (я думаю) не мають значення. Він містить делегатні методи, які просто служать для використання методів, з яких Listвін складається, …

9
Чи повинен я передати об'єкт конструктору чи інстанцію в класі?
Розглянемо ці два приклади: Передача об'єкта конструктору class ExampleA { private $config; public function __construct($config) { $this->config = $config; } } $config = new Config; $exampleA = new ExampleA($config); Миттєвий пошук класу class ExampleB { private $config; public function __construct() { $this->config = new Config; } } $exampleA = new …

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

3
Як видалити повторюваний код (загалом)?
Як на мові ОО (наприклад, але не обмежуючись Явою), як виправити дублюючий код залежно від сфери його виникнення? Я б почав з (наприклад) в цьому ж класі (області) виконують метод рефакторингу Extract Method (fix) в класах однієї ієрархії (області) виконують метод Extract і тягніть вгору (виправити) ...

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