策略模式,模板模式,工厂模式

工厂模式:

自己不关心类是怎么来的.我想要汽车,直接去 4S 店提就好,不用自己拼零件
Spring 的 IOC Dagger 都是这种依赖注入框架.
举个具体应用的例子:
你哪天心情好把类名改了。或者把构造函数参数改了(增加或减少参数)。而你代码中又有N处new了这个类。如果你又没用工厂。那你惨了。一个一个找来改吧。漏一个直接GG.

模板模式:

模板就是父类有个final 修饰的 K方法,K 方法里执行 ABC 三个方法, 其中B可以变化,是抽象方法. 子类继承父类, 由于子类方法会覆盖父类方法,所以,重写B 然后调用 父类的K方法时,B就被替换了执行的是子类的B

比如: 点餐,吃饭,买单 吃饭可以变, 点餐和买单是不变的.而且这三个的步骤是不变的
吃饭可以由子类写为:吃食堂,吃外卖. 蒸羊羔,蒸熊掌,蒸鹿尾儿, 烧花鸭,烧雏鸡儿,烧子鹅 ,卤煮咸鸭,酱鸡,腊肉,松花,小肚儿,晾肉,香肠…

策略模式:

策略模式的做法:有几种方案供你选择旅行,选择火车好呢还是骑自行车,完全有客户自行决定去构建旅行方案(比如你自己需要去买火车票,或者机票)。而工厂模式是你决定哪种旅行方案后,不用关注这旅行方案怎么给你创建,也就是说你告诉我方案的名称就可以了,然后由工厂代替你去构建具体方案(工厂代替你去买火车票)。

总结:

工厂负责创建对象,可以让你忽略这个对象的具体创建细节,更多的关注业务,策略负责对象在不同情况下选择最合适的方法,有钱做飞机,没钱坐硬座,让客户自己选,模板负责让方法中不同的地方可以灵活的变化,坐火车,我可以选择自带泡面,也可以选择火车食堂.

个人心得:

个人觉得,策略模式是大方向上的规划,比如坐火车还是坐飞机,而模板是对已经熟知确定的流程中的部分模块进行可变化的替换,比如在客户已经定下来坐火车的情况下,吃什么这件必定做的小事的几种方案.而模板模式的实现方式就又有点代理模式的影子.hook 掉关键方法的意思.

代理模式:

Spring AOP, retrofit 都有用到.
核心思想就是狸猫换太子
之前讲过代理全家桶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值