设计模式学习心得。
又看了几个设计模式。希望大神指点,看我说的对不对。
1,原型模式:
就是对象的复制。集成ICloneable接口。深层复制,包含的对象也需要集成IClongeable接口。
应用场景:对象创建挺复杂的时候。用复制比较快。也方便。
2,模板模式:
就是把父类的具体行为,延迟到子类中。
具体做法就是把变化的部分,写成virtual 型方法。
然后子类继承父类,并重写这部分内容。这样就实现了父类功能的具体化。也利于以后扩展。因为要被重写,所以父类作为模板,一般都是抽象类。
应用场景。有一个方法,被大量的用于多个子类,子类调用起来都要写很多重复的代码。
就需要提炼这个方法,写一个虚方法。然后子类去重写。这样重复的代码就被父类执行了。子类只执行不同的地方。就可以了。
3,外观模式:
把一些旧的方法,或者几个相关性非常强,互相联系很紧密,或者旧系统,功能很多的好多类,集成成一个,对外开放需要开放的接口。
应用场景:旧系统,重构太多的情况下。用新的接口封装功能。
4,建造者模式:
当一个对象创建的过程非常复杂。应该把创建步骤打包。并提供单独的Create方法。把具体的个性化的创建方法写成虚方法。子类可以重写他的方法。
书上的还有一个指挥者类。我觉得没啥必要。直接写到创造者里面,似乎没啥区别。
应用场景:对象的创建过程非常复杂。需要很多步骤,直接创建容易出错,这样就把创建过程写成长方法,并返回创建好的对象。然后把个性化的创建过程写成虚方法。让子类去重写。
1,原型模式:
就是对象的复制。集成ICloneable接口。深层复制,包含的对象也需要集成IClongeable接口。
应用场景:对象创建挺复杂的时候。用复制比较快。也方便。
2,模板模式:
就是把父类的具体行为,延迟到子类中。
具体做法就是把变化的部分,写成virtual 型方法。
然后子类继承父类,并重写这部分内容。这样就实现了父类功能的具体化。也利于以后扩展。因为要被重写,所以父类作为模板,一般都是抽象类。
应用场景。有一个方法,被大量的用于多个子类,子类调用起来都要写很多重复的代码。
就需要提炼这个方法,写一个虚方法。然后子类去重写。这样重复的代码就被父类执行了。子类只执行不同的地方。就可以了。
3,外观模式:
把一些旧的方法,或者几个相关性非常强,互相联系很紧密,或者旧系统,功能很多的好多类,集成成一个,对外开放需要开放的接口。
应用场景:旧系统,重构太多的情况下。用新的接口封装功能。
4,建造者模式:
当一个对象创建的过程非常复杂。应该把创建步骤打包。并提供单独的Create方法。把具体的个性化的创建方法写成虚方法。子类可以重写他的方法。
书上的还有一个指挥者类。我觉得没啥必要。直接写到创造者里面,似乎没啥区别。
应用场景:对象的创建过程非常复杂。需要很多步骤,直接创建容易出错,这样就把创建过程写成长方法,并返回创建好的对象。然后把个性化的创建过程写成虚方法。让子类去重写。
...全文
相关推荐
设计模式学习心得(研磨设计模式)
在软件开发领域,设计模式是经验丰富的开发者们总结出的解决常见问题的最佳实践。这篇“设计模式学习心得(研磨设计模式)”博客及其相关的PDF文档,为我们提供了一个深入理解和应用设计模式的宝贵资源。
js装饰设计模式学习心得
Javascript装饰设计模式是一种常用的软件设计模式,其核心思想是在不改变原有对象的基础上,给对象动态地添加新功能。
非关语言: 设计模式
一些设计模式学习心得,资料来源于网络,本人搜集整理
c#中的委托与事件把委托事件讲透 读书笔记 学习心得
C#中的委托与事件讲透读书笔记学习心得在C#中,委托和事件是两个非常重要的概念,它们在.NET Framework中的应用非常广泛。然而,对于很多初学者来说,理解委托和事件并不是一件容易的事情。
java学习心得体会
通过分析开源项目或Java标准库,可以了解实际应用中的最佳实践和设计模式。比如观察ArrayList和HashMap的实现,可以学习如何优化数据结构和算法。理论与实践相结合的同时,还要注重工具的使用。


