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

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

7
Функціональне програмування порівняно з OOP з класами
Мене останнім часом цікавлять деякі концепції функціонального програмування. Я вже деякий час користуюсь OOP. Я бачу, як я створив би досить складний додаток в OOP. Кожен об’єкт знав би, як робити те, що робить об’єкт. Або все, що робить і клас батьків. Тому я можу просто сказати, Person().speak()щоб змусити людину …

6
Чи добре мати запахи коду, якщо це дозволяє легше вирішити іншу проблему? [зачинено]
Група друзів і я працювали над проектом протягом останнього часу, і ми хотіли придумати приємний спосіб представлення OOP сценарію, характерного для нашого продукту. По суті, ми працюємо над грою кулі в стилі Touhou , і ми хотіли створити систему, де ми могли б легко представляти будь-яку можливу поведінку кулі, про …

18
Що б ви зробили, якби ваш клієнт вимагав від вас не використовувати об'єктно-орієнтоване програмування?
Я пишу програму для імітації активності мурах у сітці (PDF). Мураш може пересуватися, збирати речі і кидати речі. Проблема полягає в тому, що дії мурашок і положення кожного мураха легко відстежувати за атрибутами класу (і ми можемо легко створити багато примірників таких мурашок) мій клієнт сказав, що оскільки він має …

14
Чому об’єкти передаються за посиланням?
Молодий колега, який вивчав ОО, запитав мене, чому кожен об'єкт передається за посиланням, що протилежне примітивним типам або структурам. Це загальна характеристика таких мов, як Java та C #. Я не зміг знайти для нього гарної відповіді. Які мотиви для цього дизайнерського рішення? Чи втомилися розробники цих мов щоразу створювати …

10
Як правило, ви надсилаєте об'єкти або їх змінні в функції?
Що є загальноприйнятою практикою між цими двома випадками: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } або function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Іншими словами, як правило, краще передавати цілі об’єкти навколо або просто потрібні поля?

5
Чи переважають конкретні методи кодовим запахом?
Чи правда, що переважаючі конкретні методи - це кодовий запах? Тому що я думаю, якщо вам потрібно перекрити конкретні методи: public class A{ public void a(){ } } public class B extends A{ @Override public void a(){ } } його можна переписати як public interface A{ public void a(); } …

7
Чи є кодовим запахом встановити прапор у циклі, щоб використовувати його згодом?
У мене є фрагмент коду, куди я повторюю карту, поки певна умова не відповідає дійсності, а потім пізніше використовувати цю умову, щоб зробити ще якісь речі. Приклад: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { …

10
З огляду на стадо коней, як я можу знайти середню довжину рогів у всіх єдинорогів?
Питання вище - це абстрактний приклад поширеної проблеми, з якою я стикаюся у застарілому коді, а точніше - проблем, що виникають внаслідок попередніх спроб вирішення цієї проблеми. Я можу придумати хоча б один .NET Framework метод, який призначений для вирішення цієї проблеми, як Enumerable.OfType<T>метод. Але той факт, що ви врешті-решт …

10
Як відповідатимуть прихильники функціонального програмування на цю заяву в Code Complete?
На сторінці 839 другого видання Стів МакКоннелл обговорює всі способи, якими програмісти можуть «підкорити складність» у великих програмах. Його підсумки завершуються цим твердженням: "Об'єктно-орієнтоване програмування забезпечує рівень абстракції, який застосовується одночасно до алгоритмів і даних , такий вид абстракції, якого функціональне розкладання не забезпечувало." У поєднанні з його висновком, що …

6
Розуміння "програмування на інтерфейс"
Я багато натрапив на термін "програмування на інтерфейс замість реалізації", і я думаю, що я начебто розумію, що це означає. Але я хочу переконатися, що я розумію, що це переваги та можливі реалізації. "Програмування на інтерфейс" означає, що, коли це можливо, слід посилатися на більш абстрактний рівень класу (інтерфейс, абстрактний …

10
Інтерфейси на абстрактному класі
У мене з колегою є різні думки щодо взаємозв'язку між базовими класами та інтерфейсами. Я вважаю, що клас не повинен реалізовувати інтерфейс, якщо цей клас не можна використовувати, коли потрібна реалізація інтерфейсу. Іншими словами, мені подобається бачити такий код: interface IFooWorker { void Work(); } abstract class BaseWorker { ... …

3
Що означає "S" в OOPS?
Я шукав повну форму " OOPS " в Google , але, на жаль, є багато неоднозначних відповідей. Деякі кажуть, що це " Системи ", а деякі кажуть, що це " Структура ", а деякі навіть згадують це як " Синопсис ". Чи може хто-небудь просвітити мене, щоб знайти повну форму …

5
Коли і навіщо використовувати вкладені класи?
Використовуючи об'єктно-орієнтоване програмування, ми маємо можливість створювати клас всередині класу (вкладений клас), але я ніколи не створював вкладений клас за 4 роки роботи з кодуванням. Для чого хороші вкладені класи? Я знаю, що клас може бути позначений як приватний, якщо він вкладений і що ми можемо отримати доступ до всіх …

8
Чи прийнятно копіювати та вставляти довгий, але простий код, а не загортати їх у клас чи функцію?
Припустимо, у мене є сегмент коду для підключення до Інтернету та показ результатів з'єднання, як це: HttpRequest* httpRequest=new HttpRequest(); httpRequest->setUrl("(some domain .com)"); httpRequest->setRequestType(HttpRequest::Type::POST); httpRequest->setRequestData("(something like name=?&age=30&...)"); httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){ string responseString=response->getResponseDataString(); if(response->getErrorCode()!=200){ if(response->getErrorCode()==404){ Alert* alert=new Alert(); alert->setFontSize(30); alert->setFontColor(255,255,255); alert->setPosition(Screen.MIDDLE); alert->show("Connection Error","Not Found"); }else if((some other different cases)){ (some other …

6
Створити новий об’єкт або скинути кожну властивість?
public class MyClass { public object Prop1 { get; set; } public object Prop2 { get; set; } public object Prop3 { get; set; } } Припустимо , у мене є об'єкт myObjectз MyClassі мені потрібно скинути свої властивості, що краще створити новий об'єкт або перепризначити кожне властивість? Припустимо, я …

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