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

10
Есть ли смысл использовать компоновщики и текучие интерфейсы с инициализаторами объектов?

В Java и C # вы можете создать объект со свойствами, которые можно установить при инициализации, либо определив конструктор с параметрами, определив каждое свойство после создания объекта, либо используя шаблон интерфейса Builder / Fluid. Однако в C # 3 были введены инициализаторы объектов и...

10
Каковы основные обязанности в объектно-ориентированном программировании?

Я новичок в объектно-ориентированном программировании, и я не понимаю, какова цель основного. Да, я читал, что это «точка входа» в программу, но я не понимаю, что должно быть в основном? И каковы его обязанности? Может случиться так, что что-то написанное в main может быть инкапсулировано в другой...

10
Интерфейс с только получателями - это запах кода?

(Я видел этот вопрос , но первый ответ касается автоматических свойств больше, чем дизайна, а второй говорит , что нужно скрыть код хранилища данных от потребителя , что я не уверен, что я хочу / мой код делает, так что хотелось бы услышать другое мнение) У меня есть две очень похожие сущности,...

10
Применяется ли принцип разделения интерфейсов к конкретным методам?

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

10
Что такое простой процесс проектирования системы ООП перед ее кодированием?

Всякий раз, когда мне требовалось построить проект, мне всегда удавалось построить его, не заранее разработав план или проект, а после того, как сначала написал необходимый класс, конкретизировав весь проект, создавая его снизу вверх. Теперь я знаю, что это не правильный способ создания...

10
Какой код должен быть включен в абстрактный класс?

В последнее время меня беспокоит использование абстрактных классов. Иногда абстрактный класс создается заранее и работает как шаблон того, как будут работать производные классы. Это означает, более или менее, что они предоставляют некоторые функциональные возможности высокого уровня, но не...

10
Является ли нарушением принципа Открыто-Закрыто обновление константы, представляющей реальное значение?

У меня есть класс для расчета чистого годового дохода работников. У него есть константа, представляющая процент налога. Но однажды ставка налога изменилась, поэтому мне нужно исправить код. Указывает ли акт исправления этой константы на нарушение принципа Открыто-Закрыто , поскольку он постулирует,...

10
Это хорошая практика, чтобы обернуть связанный набор свойств в свою собственную структуру / класс?

Написание объекта User в Swift, хотя мой вопрос касается любого строго типизированного языка. Пользователь может иметь несколько ссылок (FacebookProfile, InstagramProfile и т. Д.). Несколько вопросов по этому поводу. Это хорошая практика, чтобы обернуть ссылки в свой собственный объект? struct User...

10
Как избежать бесконечно повторяющихся одинаково неоптимальных проектов?

Поэтому, вероятно, как и многие, я часто сталкиваюсь с головными болями, связанными с проблемами проектирования, в которых, например, есть какой-то шаблон / подход к проектированию, который, кажется, интуитивно подходит к проблеме и имеет желаемые преимущества. Очень часто есть некоторая оговорка,...

10
Является ли разделение большинства классов на поля данных только классами и только классы методов (если это возможно) хорошим или антишаблонным?

Например, класс обычно имеет члены класса и методы, например: public class Cat{ private String name; private int weight; private Image image; public void printInfo(){ System.out.println("Name:"+this.name+",weight:"+this.weight); } public void draw(){ //some draw code which uses this.image } } Но...

10
C ++ Предпочтительный метод работы с реализацией для больших шаблонов

Обычно при объявлении класса C ++ рекомендуется помещать только объявление в заголовочный файл и помещать реализацию в исходный файл. Однако, похоже, что эта модель проектирования не работает для шаблонных классов. При поиске в Интернете, кажется, есть 2 мнения о лучшем способе управления шаблонами...

9
Почему так много программистов абсолютно ненавидят уровни распространенности объектов?

Распространенность - это простая методика предоставления свойств ACID объектной модели в памяти, основанной на двоичной сериализации и записи в журнал с опережением записи. Это работает так: Начните со снимка. Сериализуйте объектную модель и запишите ее в файл. Создайте файл журнала. Для каждого...

9
Какую парадигму использовать для написания шахматного движка?

Если бы вы собирались написать движок для игры в шахматы, какую парадигму программирования вы бы использовали (ООП, процедурный и т. Д.) И почему вы бы выбрали это? Под шахматным движком я подразумеваю часть программы, которая оценивает текущую доску и решает следующий ход компьютера. Я спрашиваю,...

9
Где, в объектно-ориентированной системе, следует ли вообще выбирать (в стиле C) структуры над классами?

C и, скорее всего, многие другие языки предоставляют structключевое слово для создания структур (или чего-то подобного). Это (по крайней мере, в C), с упрощенной точки зрения, как классы, но без полиморфизма, наследования, методов и так далее. Подумайте об объектно-ориентированном (или...

9
Откуда мы знаем, что предпочтение композиции перед обобщением - это всегда правильный выбор?

Независимо от того, существует объект физически или нет, мы можем выбрать его моделирование различными способами. Мы могли бы произвольно использовать обобщение или композицию во многих случаях. Тем не менее, принцип GoF «отдавай предпочтение композиции обобщению [sic]» побуждает нас использовать...

9
Можете ли вы улучшить свои навыки программирования, изучая другие языковые парадигмы?

Если да, можете ли вы рассказать мне, как изучение новой парадигмы изменило ваш подход к решению проблем программирования, даже если проблема в другой парадигме / языке / технологии? Я буду очень признателен, если вы скажете мне определенным образом, как ваши навыки программирования на X (т.е. JAVA...

9
ООП технологии смерти [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Я много раз слышал о аспектно-ориентированном программировании, в основном,...

9
Парадигмы подходят для программирования пользовательского интерфейса

Это более конкретный вопрос (или на самом деле два, но они связаны) из комментариев о смерти технологии ООП, где кто-то заявил, что ООП не является подходящей парадигмой для программирования GUI. Читая комментарии там и здесь, я все еще чувствую, что есть чему поучиться: какие парадигмы...

9
Держать модель MVC свободно связанной с БД?

Мне нравится, чтобы мой код тестировался, и я решил использовать стратегию Dependency-Injection для моей текущей инфраструктуры MVC, которая, безусловно, оказалась отличным способом обеспечения слабосвязанного кода, тестируемости и модульности. Но, будучи далеким от мастера по шаблонам...

9
Является ли функциональная декомпозиция действительно антипаттерном?

Пока я читал «Наихудшие анти-паттерны, с которыми вы столкнулись» , я щелкнул ссылку в этом посте, чтобы попасть на веб-сайт об анти-шаблонах. И страница http://sourcemaking.com/antipatterns/functional-decomposition заставила меня задуматься. Насколько плох этот анти-паттерн, и вообще ли он...