设计模式有很多,但大部分可以说基本上掌握,就不单独写了,这里记下,如果有错到时候再回来补充;
这个博主的解释非常独到.........传送门
1.适配器模式:
IA是A系统的接口, IB是B系统的接口,...一般来说.AB两个系统干的活有相似,但对外只想提供A的接口出去,又不想把B修改为A那样.....那么就用到适配器了.....
adaptA是继承IA的.......一般adaptA里面用组合的方式保存一个IB类的对象...........也就是用IB的类方法去实现IA的所有接口....那么B就可以在在A系统下使用了.
以前的特效系统也做过这个类似,,因为后面重新写了一个特效系统,但也希望能使用以前的特效系统..这时候这个适配器模式就有用了.
2.工厂模式:
工厂模式以前用得很多.....就是把一些对象的生成和销毁都交给一个工厂类处理......想生成某个类的时候.一般传个参数到工厂类,里面怎么组装你不需要知道.你会得到你想要的对象指针的.......工厂一般应用单件模式......复杂点的..工厂也有接口类..然后下面继承不同生产功能的子类.工厂.........目的都差不多.......用生产汽车最好理解了...用户不需要知道宝马X5怎么生产组装,他的责任是给钱,...然后我们工厂就提供一辆出来..(我也想要)
3.facade门面模式:
我们做功能会用到很多不同的接口类,而且为了便于自己写功能.一般分得很细.而且定义很多..,自己用用也就算了.但要是提供给外面的用户使用,那么就悲剧了.用户会难以选择,
所以一般都会用组合再封装一层,...只提供必须的和少量的接口,让用户一看就知道.....这就是门面工程......@@
4.Template method模板模式:
一个基类或者接口类.......
class fun{ public: void run() ; protected: virtual A() = 0 ; virtual B() = 0 ; virtual c() = 0;};
然后run里面就写死执行 A(); B(); C(); 这样的顺序运行........run要求不能被改写.........你可以修改ABC等接口..
大概就这样......这个很多用在最外层的框架用...
5.builder建造者模式:
这个实际应用中真分不清楚和工厂模式有什么区别.............建造者对外提供一个director..然后传入不同的部件builder,去控制产品 ......
....工厂模式就是传参数控制生产的产品..但返回的都是同一个接口类.......
可以说是一个组合.一个继承的应用吧.