![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 86
wqh807020
这个作者很懒,什么都没留下…
展开
-
Design Pattern学习笔记之状态机模式(State Patterns)
Design Pattern学习笔记之状态机模式(State Patterns) 1. 引子--Whois? 状态机模式用于需要根据内部状态改变行为的场景;状态机模式和策略模式类似但目标不同,策略模式使用通用接口来封装不同算法,而状态机模式使用内部状态控制自身的行为;状态的迁移可在状态类中实现也可以在context中实现,怎么选择要看设计时的考虑(允许哪部分变化);状态对象可以在多个co原创 2012-12-19 19:10:17 · 773 阅读 · 0 评论 -
Design Pattern学习笔记之代理模式(the Proxy Pattern)
Design Pattern学习笔记之代理模式(the Proxy Pattern) 1. 引子--Whois? 好警察还是坏警察?你是个好警察,你为每一个服务请求者提供友好、优质的服务,但是这样的话,你忙不过来,每个人都找你,特别需要你服务的人反倒获取不到服务。怎么办?一般的情况下,我们还需要一个“坏”警察,由他来过滤掉一部分意义不大的服务请求,换句话说,这个“坏”警察只是控制对“好”原创 2012-12-19 14:44:23 · 540 阅读 · 0 评论 -
Design Pattern学习笔记之模板方法模式(the Template Method Pattern)
Design Pattern学习笔记之模板方法模式(the Template Method Pattern) 1. 引子--Whois? 在介绍过的设计模式中,我们一直在做封装的工作:封装对象的创建,封装方法调用,“封装”复杂接口,封装调用方与提供方接口的不兼容… 模板方法模式也是一种封装,它封装了包括好几个步骤的算法,子类可以按照实际需要实现算法中的特定步骤。 模板方法模式是对H原创 2012-12-19 14:36:34 · 522 阅读 · 0 评论 -
Design Pattern学习笔记之命令(Command Pattern)
Design Pattern学习笔记之命令(Command Pattern) 1. 引子--Whois? a. 用于封装方法调用。 b. 可以很方便地提供“undo”操作。 c. 可以用于进行系统恢复。 d. 实现了方法调用者和方法具体实现者之间的松散耦合。 e. 相对于其他模式而言,比较难理解。 2. 问题引入—远程控制原创 2012-12-19 14:34:39 · 481 阅读 · 0 评论 -
Design Pattern学习笔记之单例(Singleton Pattern)
Design Pattern学习笔记之单例(Singleton Pattern) 1. 引子--Whois? a. 从类图看,在所有模式中最简单,只有一个类。 b. 限定某个类只能有一个实例。 c. 为其他类提供公共的访问方法。 d. 看起来简单,但实现该模式时,要多加注意,特别是在多线程的场景下。 2. 不辨不明—为什么? a.原创 2012-12-19 14:22:48 · 281 阅读 · 0 评论 -
Design Pattern学习笔记之工厂(简单工厂、工厂方法、抽象工厂)
Design Pattern学习笔记之工厂(简单工厂、工厂方法、抽象工厂) 1. 有点邪恶的new 我们都知道应该面向接口编程,可new方法让代码明确无比地跟具体的类绑定在一起,这样后续的变化就会对原有代码造成冲击,违背了设计中一直提倡的原则: design should be "open for extension but closed for modification"。我们来看看原创 2012-12-19 14:18:39 · 404 阅读 · 0 评论 -
Design Pattern学习笔记之迭代器模式和复合模式(the Iterator and Composite Pattern)
Design Pattern学习笔记之迭代器模式和复合模式(the Iterator and Composite Pattern) 1. 引子--Whois? 我们有很多种将对象塞入集合的方式,可以用array、stack、list、hashtable等等,以上的每一种都各有优缺点。但是当我们考虑遍历这些集合的问题时,你是否打算向外部暴露你如何实现集合的细节(array or stack原创 2012-12-19 14:42:24 · 594 阅读 · 0 评论 -
Design Pattern学习笔记之适配和外观(the Adapter and Facade Pattern)
Design Pattern学习笔记之适配和外观(the Adapter and Facade Pattern) 1. 引子--Whois? a. 应用适配器模式可实现你想不到的伟大工作:将方的木柄塞到圆的孔洞中。 b. 适配器模式跟装饰模式类似,都用于封装对象,但两者目的不同。 c. 适配器模式有对象装饰模式和类装饰模式两种实现方式。 d.原创 2012-12-19 14:39:10 · 476 阅读 · 0 评论 -
Design Pattern学习笔记之装饰(Decorator Pattern)
Design Pattern学习笔记之装饰(Decorator Pattern) 1. 引子--Whois? a. 它隶属于模式中的creating,就是为了应对创建对象时的变化。 b. 它使用组合技术赋予运行时改变对象行为的能力。 c. 它可为对象添加任意新的行为和特性,而不用改动原来运行良好的代码 d. 它提供了灵活扩充类功能的同时,引入原创 2012-12-19 14:21:43 · 562 阅读 · 0 评论 -
Design pattern学习笔记 – observer pattern
Design pattern学习笔记 – observer pattern 1. 问题引入—气象观测站 实现一个气象观测站系统,从物理设备中获取天气变化(主要包括humidity, temperature, pressure),依据这些设备变化提供当前天气、天气统计、天气预报三种气象报告方式;此外对该气象站系统有一定的扩展需求,以后可方便添加其他自定义的气象报告方式。下图展示需求:原创 2012-12-19 14:16:03 · 423 阅读 · 0 评论 -
Design pattern学习笔记 – what and why?
Design pattern学习笔记 – what and why? 1. 为什么要学习和应用设计模式 我们在设计过程中面临的问题有很多已经被前人解决过,设计模式是前人经验的总结,学习和应用设计模式是对前人经验的重用,有助于我们更好的解决眼前问题。 Instead of code reuse, withpatterns you get experience reuse. 2原创 2012-12-19 14:12:39 · 362 阅读 · 0 评论 -
Design Pattern学习笔记之组合模式(Compound Patterns)
Design Pattern学习笔记之组合模式(Compound Patterns) 1. 引子--Whois? 我们之前介绍过很多设计模式,我们力图从各个角度辨析各种模式的异同,找到某种模式存在的理由。简言之,我们尽力识别模式的不同,在解决具体问题时,一般使用单一模式解决问题。其实之前介绍的例子,都是为了帮助理解设计模式,在现实的世界里,有更多更复杂的问题要处理,很多非常好的OO设计都原创 2012-12-19 14:45:27 · 645 阅读 · 0 评论