5.Factory Method(创建型模式)

【起源】

         某个类经常变化,但是接口保持稳定;

 

【动机】

         定义一个用于创建对象的接口,让子类决定实例化哪一个类;

         (用抽象类实现稳定的部分,变化的部分由子类重写;每个类的对象创建工作由一个对应的类来完成,称之为“工厂类”)

   Client      AbstractFactory      AbstractClass  

                    Factory1                   Class1

                    Factory2                   Class2

 

【核心】

         抽象类与具体类的关系,就像【变量,值】;

         当一个值在程序中的多个地方出现时,修改不方便,用一个变量来代替它们,起到“宏”的作用;

         工厂类的作用:是将类的创建工作封装到非Client,减少Client的耦合和关注;

         简化的 Abstract Factory;

 

【代码实例】

【FactoryMethod, AbstractFactory, Builder的区别】

         这3个模式非常像,关注下它们的差别:

         1)Factory Method 解决“单个对象”的需求变化(对外不变,对内“整顿”);

         2)Abstract Factory 解决“系列对象”的需求变化(团队“打法”不变,换整批“替补”上);

         3)Builder 解决“对象部分”的需求变化(框架不变,局部“调换”);


【模型图】

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值