Вопросы с тегом «object-oriented»

Методология, которая позволяет моделировать систему как набор объектов, которыми можно управлять и манипулировать модульным способом

7
Функциональное программирование по сравнению с ООП с классами
В последнее время меня интересуют некоторые концепции функционального программирования. Я использовал ООП уже некоторое время. Я вижу, как я могу построить довольно сложное приложение в ООП. Каждый объект будет знать, как делать то, что делает объект. Или что-нибудь, что делает класс родителей. Так что я могу просто сказать, Person().speak()чтобы заставить …

6
Хорошо ли иметь запах кода, если он допускает более простое решение другой проблемы? [закрыто]
Группа друзей и я работали над проектом в последнее время, и мы хотели изобрести хороший ООП-способ представления сценария, специфичного для нашего продукта. По сути, мы работаем над пули-адом в стиле Тохоу , и мы хотели создать систему, в которой мы могли бы легко представить любое возможное поведение пули, которое мы …

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() …

10
Учитывая табун лошадей, как мне определить среднюю длину рога всех единорогов?
Приведенный выше вопрос является абстрактным примером распространенной проблемы, с которой я сталкиваюсь в унаследованном коде, или, точнее, проблем, возникших в результате предыдущих попыток решить эту проблему. Я могу вспомнить хотя бы один метод .NET Framework, предназначенный для решения этой проблемы, например Enumerable.OfType<T>метод. Но тот факт, что вы в конечном итоге …

10
Как сторонники функционального программирования ответят на это утверждение в Code Complete?
На странице 839 второго издания Стив Макконнелл обсуждает все способы, с помощью которых программисты могут «преодолевать сложности» в больших программах. Его советы завершаются этим утверждением: «Объектно-ориентированное программирование обеспечивает уровень абстракции, который применяется одновременно к алгоритмам и данным , своего рода абстракцию, которую не обеспечивала только функциональная декомпозиция». В сочетании с …

6
Понимание «программирования для интерфейса»
Я часто сталкивался с понятием «программирование для интерфейса вместо реализации», и я думаю, что понимаю, что это значит. Но я хочу убедиться, что я понимаю, что это преимущества и возможные реализации. «Программирование на интерфейсе» означает, что, когда это возможно, следует ссылаться на более абстрактный уровень класса (интерфейс, абстрактный класс или …

3
Что означает «S» в OOPS?
Я искал полную форму « OOPS » в Google , но, к сожалению, есть много неоднозначных ответов. Некоторые говорят, что это « Системы », а некоторые говорят, что это « Структура », а некоторые даже упоминают это как « Синопсис ». Кто-нибудь может, пожалуйста, просветить меня, чтобы найти полную форму …

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

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 alert) …

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.