Описание тега open-closed-principle
На вопросы о принципе открытости-закрытости объектно-ориентированного проектирования, предложенном Бертраном Мейером в его книге "Конструирование объектно-ориентированного программного обеспечения". В нем говорится, что "модули должны быть как открытыми, так и закрытыми". (2-е издание, стр. 57)
1
ответ
Преимущество фабричного метода
Из вики, Шаблон проектирования Factory Method решает следующие проблемы: Как можно создать объект, чтобы подклассы могли переопределить, какой класс создавать? Как класс может отложить создание экземпляров для подклассов? Например, MazeGame обеспечи…
22 дек '17 в 08:16
0
ответов
Scala - нарушает ли сопоставление с образцом принцип Open-Closed?
Во-первых, я знаю, что этот вопрос уже задавался здесь, но он мне не был понятен. Сопоставление с образцом используется для того, чтобы функция реагировала на различные типы данных. Кто-то скажет, что если в моем случае сопоставления с образцом есть…
27 апр '15 в 13:02
0
ответов
Является ли "файл" также участвовать в открытом закрытом принципе?
Я знаю в соответствии с принципом открытого закрытого типа, что-то вроде класса, интерфейса, кода... должно быть неизменным при добавлении новых функций или содержимого, но является ли файл в этом случае? Я разрабатывал игру, в ней есть информация о…
17 авг '15 в 09:50
3
ответа
Как соблюдать принцип "открыто-закрыто", когда у вас меняется бизнес-логика
Мы делаем некоторые большие изменения в нашей системе, и я хотел бы знать, как лучше реализовать эти новые правила бизнес-логики, соблюдая принципы SOLID: Принципы Open / Closed гласят: "Открыто для расширения, но закрыто для модификации", хорошо, н…
24 авг '10 в 15:24
0
ответов
Как организовать данные в коллекции с подмножествами?
Мой проект использует Unity, поэтому я пишу на C#, но это проблема моделирования. Мои классы моделей следуют этой схеме: +---+ +---+ | A | | B | +-^-+ +-^-+ | | +----+---+ +----+---+ | | | | +--+-+ +-+--+ ++---+ +----+ | A1 | | A2 | | B1 | | B2 | +-…
19 июн '15 в 12:31
1
ответ
Диспетчеризация по типу против полиморфизма в C#. Бизнес сущности и не бизнес логика
Я хочу выполнить некоторые операции (сохранение базы данных, сериализация json и т. Д.) Над объектом в зависимости от его типа. Полиморфизм - это обычный способ сделать это, но я не хочу добавлять много не-бизнес-логики в мои модели. Вот простая иер…
18 дек '14 в 17:49
0
ответов
Методика использования SOLID Open/Closed Principle с перечислениями и валидацией
Я ищу лучшую технику, чтобы убедиться, что я следую принципу Open/Closed в следующей ситуации. По сути, я унаследовал некоторый код, который является кошмаром для расширения, поскольку он требует так много модификаций: public enum Basis { Basis1, Ba…
06 окт '16 в 15:52
3
ответа
Имеет ли смысл принцип "Открыто для расширения, закрыто для модификации"?
Мне кажется, что Бобу Мартину нужно что-то, начиная с O, чтобы сделать SOLID, и он нашел в какой-то старой книге этот (возможно, бесполезный) принцип Open/Closed. Как Open/Closed может сосуществовать с Single Responsibility, в котором говорится, что…
26 фев '16 в 17:31
4
ответа
Шаблон проектирования - абстрактный шаблон фабрики и открытый закрытый принцип
Я новичок в разработке шаблонов. Я пытаюсь использовать Abstract Factory - шаблон, сохраняя принцип Open-Closed. Пожалуйста, посмотрите на следующий код: public interface IAbstractFormFactory { void ShowOSName(); } public class VistaForm : IAbstract…
10 июл '09 в 07:48
2
ответа
Нарушают ли проверенные исключения принцип открытого закрытого типа?
У меня есть два проверенных исключения: TestException1 а также TestException2 и следующий код: void p1() throws TestException1{ p2(); } void p2() throws TestException1 { p3(); } void p3() throws TestException1 {} Не нарушает ли редактирование сигнат…
26 фев '19 в 09:30
3
ответа
Правильный способ обращения с предметом Click Recycler View
У меня есть 5 строк для отображения в RecyclerView. Когда пользователь нажимает на один из элементов, открывается другое действие. Каждый предмет имеет различную активность. Я обработал событие нажатия, как показано ниже. switch (getAdapterPosition(…
18 окт '18 в 14:06
3
ответа
Абстрактные методы и принцип Open-Closed
Предположим, у меня есть следующий придуманный код: abstract class Root { public abstract void PrintHierarchy(); } class Level1 : Root { override public void PrintHierarchy() { Console.WriteLine("Level1 is a child of Root"); } } class Level2 : Level…
07 окт '10 в 16:42
6
ответов
Как избежать условий
Я хочу реорганизовать следующий код, чтобы избежать if...else, чтобы мне не приходилось менять метод каждый раз, когда появляется новый тип опроса (принцип Open/closed). Ниже приведен фрагмент кода, который я рассматриваю для рефакторинга: if (surve…
27 мар '14 в 04:51
1
ответ
Нарушает ли C-re-abstracting принцип открытого / закрытого?
Как программист на Java (начинающий), представляющий себя на C#, я обнаружил, что вы можете переформулировать уже реализованный метод, подобный этому (код из этого ответа) public class D { public virtual void DoWork(int i) { // Original implementati…
29 авг '15 в 02:40
2
ответа
Пройдя мимо открытого-закрытого принципа
У меня есть простая программа, которая рисует геометрические фигуры на основе данных мыши, предоставленных пользователем. У меня есть один класс, который обрабатывает отслеживание мыши (он получает список с историей движения мыши) и один абстрактный…
14 апр '13 в 10:30
1
ответ
Как принцип "открытый / закрытый" может помочь избежать повторного развертывания сборок?
Я недавно прочитал хорошую, простую для понимания статью о open/closed principle, И меня удивил следующий опыт: В реальном сценарии, когда база кода в десять, сто или тысяча раз больше, и изменение класса означает повторное развертывание его сборки …
25 янв '17 в 08:25
2
ответа
Применение принципа открытого / закрытого в Java
Я пытаюсь понять принципы SOLID и поэтому реализовал некоторые фрагменты Java. На данный момент меня беспокоит OCP. Имея следующие образцы, public abstract class Bakery { public abstract Bakegood bake(); } /******************************************…
15 мар '16 в 09:02
4
ответа
Нарушает ли переопределение принцип Open/Closed?
Принцип открытия / закрытия гласит, что класс должен быть открыт для расширения, но закрыт для модификации. Я думал, что часть модификации относится исключительно к изменению исходного кода базового класса. Но я поспорил с кем-то, кто сказал, что э…
14 июн '16 в 11:41
2
ответа
Реализация посетителя с использованием InstanceOf
Я хорошо осваиваю шаблон посетителей. Однако мне интересно кое-что. Наиболее важной мотивацией для использования шаблона посетителя является добавление логики, включающей определенные модели данных на стороне клиента, без необходимости проверки реал…
17 дек '12 в 13:04
3
ответа
Нужно ли нам придерживаться принципа Открыто-Закрыто, если у нас хорошее тестовое покрытие?
Почему принцип Открыто-Закрыто так важен? Если у вас есть тесты, почему вы должны беспокоиться о модификации кода?
27 фев '17 в 08:34