Автор Нана-чан задал вопрос в разделе Другие языки и технологии
с# паттерн строитель и получил лучший ответ
Ответ от Димос Тцарев[гуру]
(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D0.BD.D0.B0_Python
ссылка
Читали?
Сначала нужно определиться, зачем нам нужен строитель, и нужен ли вообще.
В данном случае, как понимаю, создание поля для игры возможно с помощью нескольких алгоритмов,
поэтому применение шаблона строитель оправдано для отделения процесса создания игрового поля
от его состояния, т. к. в результате одного и того же процесса генерации поля мы можем получить разные
поля (благодаря параметризации алгоритма построения поля с помощью конкретного алгоритма-строителя).
Итак, шаблон строителя в данном случае можно применить, приступаем к размышлениям и реализации.
1. Определяемся с классами и объектами / участниками (ссылка - Participants)
Builder (ISudokuGridBuilder) - specifies an abstract interface for creating parts of a SudokuGrid object.
ConcreteBuilder (ClassicSudokuGridBuilder, OddEvenSudokuGridBuilder, DiagonalSudokuGridBuilder, ..)
- constructs and assembles parts of the product by implementing the ISudokuGridBuilder interface
- defines and keeps track of the representation it creates
- provides an interface for retrieving the SudokuGrid
Director (SudokuHost)
- constructs an object using the SudokuGridBuilder interface
Product (SudokuGrid)
- represents the complex object under construction. ConcreteBuilder builds the product's internal representation and defines the process by which it's assembled
- includes classes that define the constituent parts, including interfaces for assembling the parts into the final result
2. Используем схему для реализации шаблона на .NET
Корявый набросок - ссылка