Возникла некоторая проблема с пониманием этих паттернов. Нормально ли обернуть билдер фабричным методом? Я понял, что идеологически билдер используется только для создания объектов, в целом можно добавить конечно метод DO или еще несколько, но вроде так обычно не делают, поэтому мне показалось неплохой идей использовать для обертки фабричный метод, которая обычно и используется для манипуляций разными объектами.
Идея примерно такая - есть билдер и над ним директор, билдер используется только для создания объекта и возвращает Product, который после будет использован для создания новой фабрики, внутри методам NewFactory выбирается структура в зависимости от типа Product и возвращается интерфейс Factory.
Правильная ли это идея или нет? Из плюсов, не всем объектам нужно будет реализовывать эти методы, т.к. они могут быть и не нужны из минусов лишняя прослойка и более сложное восприятие кода. Код ниже примерный.
type BuildProcess interface {
M1() BuildProcess
M2() BuildProcess
M3() BuildProcess
GetP() Product
}
type Product struct{}
type Director struct {
builder BuildProcess
}
type Factory interface {
f1()
f2()
}
//удовлетворяет Factory
type factoryStruct struct{
p Product
}
func (f factoryStruct )f1(){}
func (f factoryStruct )f2(){}
func NewFactory(p Product)Factory{}