设计模式提纲:
简单工厂模式,这个不用多说,很简单的;就是创建一个类能够提供实例功能,不用关心其具体的实现;被创建实例的类型可以是接口、抽象类以及具体的类。**不仅可以用它建创接口,抽象类,具体的类都可以。
外观模式,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高级接口,这个接口使得这一子系统更加容易使用。**说白了就是为子系统定义一个一致的接口,拿这个接口就可以调用子系统的所有接口了。使用更简单。
适配器模式,将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。**就是将两个不能在一起工作的两个接口,转换成能与其兼容的接口。两个类就可以一块干活了。
单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。**不用多说了!
工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类,此模式使一个类的实例化延迟到其子类。**定义一个接口,让这个接口去创建化对象,而且实例化哪个类让它子类去决定?爸爸不决定,让儿子去决定实例谁。
抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。**提供一个接口,这个接口可以创建一系列相关或相互依赖的对象,不用指定具体的类。现在没 有代码,下面会有的!
生成器模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。**能明白,让它们两个分离,同样的构建过程,可以创建多个不同的表示。有点像工厂似的
原型模式,用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。**用原型实例去指定对象的种类,再拷贝这个原型创建新对象?需要反复琢磨几遍
中介者模式,用一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。**这个中介对象使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间 的交互。这个中介对象就是来封装一系列的交互对象。先背下来
代理模式,为其他对象提供一种代理以控制对这个对象的访问。**spring的aop有jdk动态代理,和cglib代理,应该就是用的这里说的代理模式!
观察者模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。**观察者以前有讲过的,代码实现的
命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。**可以将一个请求封装成一个对象,对请求排队,或记录请求日志;且支持可撤消操作。“从而使你可 用不同的请求对客户进行参数化”?这个不太明白。先放这里吧,之后再明白
迭代器模式,提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。**是不是像是以前学的一个iterator的这个迭代器啊?应该就是。
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。**这个大概明白,就是把各个对象组合成一个树,以后就拿这个树要对象了。
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
**
策略模式,定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化。**官方的描述,很标准。在讲到struts的时候,根据返回逻辑视图名到struts.xml里选择jsp,小张说这 就是策略设计模式,不再做其他说明了
状态模式,允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。**这个比较容易理解了。
备忘录模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保持这个状态。这样,以后就可将该对象恢复到原先保存的状态 **有些设计模式,并没有想象的那么高深,就比如这个
享元模式,运用共享技术有效地支持大量细粒度的对象。**运用共享技术 去支持大量细粒度的对象?… 😦 运用共享技术去支持大量细粒度的对象干嘛? 不懂
解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言 中的句子。**意思是不是用一个文字来表示鸟语,然后再用一种解释器按照这种鸟文的表示来解释鸟语的句子
装饰模式,动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更加灵活。**说到这个设计模式,让我想的很多;宗旨是千万不要停留在文字或者是书本本身,认为不要一股脑儿的盲目的学习和崇拜,丢了自己的思想。
职责链模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。** 意思是发过来的请求,让多个对象去处理,不要只让接收者去处理,解除它们的耦合关系 。
桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。**刚才的那个生成器模式是将对象的构建与表示相分离,如果有同样的构建就用这个构建去创建不同的 表示。
桥接模式是让抽象部分与实现部分分离,让它们能独立的变化。去年到中信传媒面试时考到过这个。
访问者模式,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。**表示一个作用于‘某对象结构中的各元素的’操作。它使你可以在‘不改变各元素类’的前提下定义‘作用于这些元素的’新操作。意思是这个类(对象结构)我提前不改变,然后重新定义作用于这个类里各元素的操作。
24个设计模式
之前在大话设计模式里背的还有 单一职责原则 开放-封闭原则 依赖倒转原则 还有一个迪米特法则