随性施展
abstract factory pattern
type IProduct interface { show()}type ProductEntity struct {}func (product *ProductEntity) show(){ fmt.Println("product entity")}type IFactory interface { createProduct()(product *ProductEntity)}type Factory struct {}func (factory *Factory) createProduct() (product *ProductEntity) { product = new(ProductEntity) return product}func main() { factory := new (Factory) factory.createProduct().show()}
observer pattern
type Customer interface { update()}type CustomerEntity struct {}func (*CustomerEntity) update() { fmt.Println("message accepted")}type Producer struct { customers []Customer}func (p *Producer) addCustomer(entity *CustomerEntity) { p.customers = append(p.customers, entity)}func (p Producer) deleteCustomer(entity *CustomerEntity) { // TODO}func (p *Producer) notify() { for _, customer := range p.customers { customer.update() }}