当前分类

设计模式

设计模式

第21章《单例模式》

今天买了《大话设计模式》这本书,也是找朋友推荐的。晚上拿到手,就看了一下单例模式这一章,因为自己只是知道单例模式,其它模式完全不懂,就想看看这本书是不是真的读起来容易理解以及讲的怎么样。一个小时看完这一章节,觉得还可以吧,讲的东西是很容易理...

设计模式

第1章《简单工厂模式》

1、学习总结:(1)工厂模式优点:a、将业务逻辑和界面逻辑分离,降低两者之间的耦合性。b、将具体的不同业务进行分离,实现业务间的松耦合。c、用一个单独的类来决定创建哪个业务实例的过程。这就是工厂。究竟要实例化哪个业务类,将来会不会增加实例化的对象...

设计模式

第2章《策略模式》

1、策略模式实质:封装了变化点。2、策略模式定义:是一种定义了一系列算法的方法。说明:这些算法完成的工作都是一样的,只是实现方式不同而已(比如,商场促销,满1000减100和打九折,这就是两个算法,但完成的工作是一样的,你想,你去商场买衣服,付款时候...

设计模式

第6章《装饰模式》

1、定义:动态的给一个对象添加一些额外的功能 。2、实现方式:把每个装饰的功能放在单独的类,并让这个类包装它所要修饰的对象。3、优点:有效地把类的核心功能和装饰功能分开;去除相关类中重复的装饰逻辑。4、适用场景:当系统需要添加的新功能,而这些新功...

设计模式

第7章《代理模式》

1、规范定义:为其它对象提供一种代理,以控制对这个对象的访问。                      通俗的讲,就是本来C是要访问S的,但是通过加入代理P后,C不需要知道S是谁,C直接访问P,P通过自己的内部逻辑,去访问S,这就实现了C最终还是调用到了S的方法...

设计模式

第8章《工厂方法模式》

1、工厂方法和简单工厂的对比:1.1、添加新功能时,二者的区别:(1)简单工厂需要完成工作:添加一个新功能类+更改工厂类(2)工厂方法需要完成工作:添加一个新功能类+添加一个生成对象的工厂+更改客户端实例化工厂的代码1.2、二者共同点:集中封装了对象的创...

设计模式

第9章《原型模式》

1、原型模式的规范定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的实例。2、原型模式的实质:利用一个指定的对象实例,再创建一个同类型的对象实例,且这个新对象可以被定制,而且不需要知道创建的细节。3、在java中的实现方式:一个类只要实...

设计模式

第10章《模版方法模式》

1、规范定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。重定义操作通过覆写模版方法里面的抽象方法而实现。2、实质:通过把不变行为迁移到超类,去除子类中的重复代...

设计模式

第12章《外观模式》

1、准确定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。2、优势:完美体现了依赖倒转原则和迪米特法则。3、适用场景:3.1、在软件设计初期阶段,应有意识的将不同的两个层分离,然后在两个层...

设计模式

第13章《建造者模式》

1、准确定义: 将一个复杂对象的创建和表示分离,使得同样的创建过程可以得到不同的表示。2、适用场景:用于创建一些复杂的对象,这些对象内部构建间的顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。3、优势:使得建造代码和表示代码分离。由于建...

设计模式

第14章《观察者模式》

1、准确定义:定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题的对象。这个主题对象在状态在发生变化时,会通知所有的观察者对象,让它们能够自动更新自己。2、使用的意义:讲一个系统分割成一系列相互协作的类有一个不好的副作用,那就是需...

设计模式

第15章《抽象工厂模式》

1、工厂模式和抽象工厂模式的区别:工厂模式适合具体功能类ConcreteProductX只有一个系列的情况;抽象工厂模式适合一个具体功能类ConcreteProductX有至少两个系列的情况。2、抽象工厂模式准确定义:提供一个创建一系列相关或相互依赖的接口,而无需指定它们具...

设计模式

第16章《状态模式》

1、准确定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。2、解决的问题:状态模式主要用于解决:当控制一个对象状态转换的表达式过于复杂时。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的逻辑简化。3、优势...

设计模式

第17章《适配器模式》

1、准确定义:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2、适用场景:2.1、两个类所做的事情相似或者相近,但具有不同的接口时,要使用适配器模式。2.2、通常在软件开发的后期或者维...

设计模式

第18章《备忘录模式》

1、定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。2、功能:2.1、当角色的状态改变时,有可能这个状态无效,这时候就可以使用暂存起来的备忘录将状态复原。2.2、实现命令的...

设计模式

第19章《组合模式》

1、定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的适用具有一致性。2、适用场景:2.1、需求中是体现部分与整体层次的结构时;2.2、希望用户可以忽略组合对象和单个对象的不同,统一的使用组合结构中的所...

设计模式

第20章《迭代器模式》

1、定义:提供一种方法顺序访问一个对象中各个元素,而又不暴露对象的内部表示。2、实际应用:由于现在高级语言,比如java、c#都已经把迭代器模式集成在语言中了,所以这个模式没有什么实用价值,但是有学习价值,我们还是可以了解一下迭代器模式内部是怎么实...

设计模式

第22章《桥接模式》

1、定义:将抽象部分和它的实现部分分离,使它们都可以独立的变化。这个定义真的很拗口,然后GoF的定义,我也是读了好几遍,还是有点蒙圈。还好书里有一个比较通俗的解释:实现系统可能会有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让...

设计模式

第23章《命令模式》

1、定义:将一个请求封装为一个对象,从而可以使用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。2、优势:2.1、能较容易的设计一个命令队列。2.2、在需要的情况下,可以较容易的将命令记入日志。2.3、允许接受请求的一方决定是...

设计模式

第24章《职责链模式》

1、定义:使得多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。从定义分析:(1)对于一个请求会有多个对象对其进行转发。(2)请求的发送者和最终处理请求的接受...

设计模式

第25章《中介者模式》

1.定义用一个对象来封装一系列的对象交互。中介者使各对象不需要显示的互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。2.优点中介者的出现降低了各个交互对象之间的耦合性,使得可以独立和复用所有的交互对象类、中介者类。由于把对象如何协...

设计模式

第26章《享元模式》

1.定义享元模式就是:运用共享技术有效地支持大量细粒度的对象。2.适用场景如果一个程序使用了大量的对象,而大量的这些对象造成了很大的开销时就应该考虑使用。对象的大多数状态是外部状态,如果删除对象的外部状态,就可以用相对较少的共享对象取代很多组对...

设计模式

第27章《解释器模式》

1.定义给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2.适用场景如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这一就可以构建一个解释器,该...

设计模式

第28章《访问者模式》

1.定义表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的前提下定义作用于这些元素的新操作。2.适用场景适用于数据结构相对稳定,又有易于变化的算法的系统(就是element稳定,visitor经常变化)3.优势由于把数据结构和数据结构上的操作进...

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

标题
返回顶部