设计模式学习心得。
摇撼大地 2016-09-02 09:03:07 又看了几个设计模式。希望大神指点,看我说的对不对。
1,原型模式:
就是对象的复制。集成ICloneable接口。深层复制,包含的对象也需要集成IClongeable接口。
应用场景:对象创建挺复杂的时候。用复制比较快。也方便。
2,模板模式:
就是把父类的具体行为,延迟到子类中。
具体做法就是把变化的部分,写成virtual 型方法。
然后子类继承父类,并重写这部分内容。这样就实现了父类功能的具体化。也利于以后扩展。因为要被重写,所以父类作为模板,一般都是抽象类。
应用场景。有一个方法,被大量的用于多个子类,子类调用起来都要写很多重复的代码。
就需要提炼这个方法,写一个虚方法。然后子类去重写。这样重复的代码就被父类执行了。子类只执行不同的地方。就可以了。
3,外观模式:
把一些旧的方法,或者几个相关性非常强,互相联系很紧密,或者旧系统,功能很多的好多类,集成成一个,对外开放需要开放的接口。
应用场景:旧系统,重构太多的情况下。用新的接口封装功能。
4,建造者模式:
当一个对象创建的过程非常复杂。应该把创建步骤打包。并提供单独的Create方法。把具体的个性化的创建方法写成虚方法。子类可以重写他的方法。
书上的还有一个指挥者类。我觉得没啥必要。直接写到创造者里面,似乎没啥区别。
应用场景:对象的创建过程非常复杂。需要很多步骤,直接创建容易出错,这样就把创建过程写成长方法,并返回创建好的对象。然后把个性化的创建过程写成虚方法。让子类去重写。