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

28
Есть ли шаблон дизайна, который устраняет необходимость проверять флаги?

Я собираюсь сохранить некоторую полезную нагрузку строки в базе данных. У меня есть две глобальные конфигурации: шифрование компрессия Они могут быть включены или отключены с помощью конфигурации таким образом, что либо только один из них включен, либо включены, либо оба отключены. Моя текущая...

27
Что может пойти не так, если нарушится принцип подстановки Лискова?

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

27
Игнорирует ли функциональное программирование преимущества, полученные от «Критериев, которые будут использоваться при декомпозиции систем на модули» (скрытие данных)?

Есть классическая статья под названием «Критерии для использования при декомпозиции систем на модули», которую я только что прочитал впервые. Это имеет смысл для меня и, вероятно, является одной из тех статей, на которых основывается ООП. Его вывод: Мы попытались продемонстрировать на этих...

27
Чем прототипное наследование практически отличается от классического наследования?

Наследование, полиморфизм и инкапсуляция являются тремя наиболее отличительными и важными особенностями ООП, и в наши дни наследование имеет высокую статистику использования. Я изучаю JavaScript, и здесь все говорят, что он имеет прототипное наследование, и люди повсюду говорят, что это что-то...

26
Как стать хорошим в объектно-ориентированном анализе и дизайне (OOAD)?

Стать хорошим анализатором и дизайнером может очень помочь разработчику. Но для этого есть определенные препятствия. Не все заинтересованы в OOAD, и не каждый, кто интересуется, знает путь. Должен ли хороший OOAD знать несколько языков OO? Или он / она провалил проекты? Как можно стать хорошим...

25
Можем ли мы жить без конструкторов?

Допустим, по какой-то причине все объекты созданы таким образом: $ obj = CLASS :: getInstance (). Затем мы внедряем зависимости с помощью сеттеров и выполняем начальную инициализацию с помощью $ obj-> initInstance (); Есть ли реальные проблемы или ситуации, которые нельзя решить, если мы вообще...

23
Объектно-ориентированный дизайн

Предположим, у вас есть следующее: +--------+ +------+ | Animal | | Food | +-+------+ +----+-+ ^ ^ | | | | +------+ +-------+ | Deer | | Grass | +------+ +-------+ Deerнаследует от Animalи Grassнаследует от Food. Все идет нормально. Animalобъекты могут есть Foodобъекты. Теперь давайте немного...

22
Должен ли объект знать свой собственный идентификатор?

obj.idкажется довольно распространенным, а также, кажется, попадает в диапазон того, что объект может знать о себе. Я спрашиваю себя, почему мой объект должен знать свой собственный идентификатор? Кажется, у него нет причин иметь это? Одна из основных причин его существования - это его извлечение,...

21
Когда вы должны использовать закрытый / внутренний класс?

Чтобы уточнить, о чем я спрашиваю, public class A{ private/*or public*/ B b; } против public class A{ private/*or public*/ class B{ .... } } Я могу определенно подумать о некоторых причинах, чтобы использовать одну или другую, но то, что я действительно хотел бы видеть, - это убедительные примеры,...

21
Используйте абстрактный класс в C # как определение

Как разработчик C ++ я довольно привык к заголовочным файлам C ++ и считаю полезным иметь какую-то принудительную «документацию» внутри кода. У меня обычно бывает плохое время, когда мне приходится читать код C # из-за этого: у меня нет такой ментальной карты класса, с которой я работаю. Давайте...

20
Когда вы хотите две ссылки на один и тот же объект?

В частности, в Java, но, вероятно, и в других языках: когда было бы полезно иметь две ссылки на один и тот же объект? Пример: Dog a = new Dog(); Dob b = a; Есть ли ситуация, когда это было бы полезно? Почему это предпочтительное решение для использования aвсякий раз, когда вы хотите...

20
Никогда не делайте публичных участников виртуальными / абстрактными - правда?

Еще в 2000-х мой коллега сказал мне, что делать публичные методы виртуальными или абстрактными - это нехорошо. Например, он считал такой класс не очень хорошо спроектированным: public abstract class PublicAbstractOrVirtual { public abstract void Method1(string argument); public virtual void...

20
Лучший дизайн для форм Windows, которые будут иметь общую функциональность

В прошлом я использовал наследование, чтобы разрешить расширение форм Windows в моем приложении. Если бы все мои формы имели общие элементы управления, графические объекты и функции, я бы создал базовую форму, реализующую общие элементы управления и функции, а затем позволил бы другим элементам...

20
Являются ли методы init () запахом кода?

Есть ли цель объявить init()метод для типа? Я не спрашиваю, стоит ли нам отдавать предпочтение init()конструктору или как избежать объявленияinit() . Я спрашиваю, есть ли какое- либо обоснование для объявления init()метода (видя, насколько он распространен) или это запах кода, и его следует...

19
Почему (/ сделал) Бертран Мейер считает, что создание подклассов - единственный способ расширить «закрытый» модуль?

В Построении объектно-ориентированного программного обеспечения Мейера (1988) он определяет принцип открытия / закрытия следующим образом: Модуль будет считаться открытым, если он все еще доступен для расширения. Например, должна быть возможность добавить поля к структурам данных, которые он...

19
ОО лучшие практики для программ на С [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . «Если вы действительно хотите ОО-сахар - используйте...

19
Как слишком много переменных экземпляра приводит к дублированию кода?

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

19
Как создать лучший ОО-код в приложении на основе реляционной базы данных, где база данных плохо спроектирована

Я пишу веб-приложение на Java, которое состоит в основном из множества похожих страниц, на каждой из которых есть несколько таблиц, и фильтр, который применяется к этим таблицам. Данные этих таблиц поступают из базы данных SQL. Я использую myBatis в качестве ORM, что может быть не лучшим выбором в...

19
Должен ли я создавать интерфейсы для объектов передачи данных?

Это хорошая идея или плохая идея создать интерфейс для объектов передачи данных? Предполагая, что объект обычно изменчив. Хотя мой пример на Java, он должен быть применим к любому другому языку с похожими понятиями. interface DataTransferObject { String getName(); void setName(String name); } class...