设计模式
chenming0733
输入理想代码,输出美好生活。
展开
-
设计模式利剑23--桥梁模式
定 义:将抽象和实现解耦,使得两者可以独立的变化优 点: 1、抽象和实现分离,在该模式下,实现可以不受抽象的约束,不用再绑定在一个固定的抽象层次上 2、优秀的扩充能力 3、实现细节对客户透明缺 点:应用场景: 1、不希望或不适用继承的场景,例如继转载 2011-12-22 15:28:38 · 396 阅读 · 0 评论 -
设计模式利剑8-中介者模式
定 义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变它们 之间的交互。优 点:减少了类之间的相互依赖,把原有的一对多的依赖变成了一对一的依赖,同事类只依赖中间者,减少了依赖,当然也减少了类见耦合缺 点:随着业务流程的复杂,中介者会膨胀很大,而且逻辑复杂动 机:在软件构建转载 2011-12-22 15:49:14 · 540 阅读 · 0 评论 -
设计模式利剑7-原型模式
定 义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,Prototype模式同工厂模式,同样对客户隐藏了对象的创建工作,但是,与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的,达到了“隔离类对象的使用者和具体类型(易变类)之间的耦合关系”的目的。优 点: 1、性能优良,特别是在循环内产生大量对象时,转载 2011-12-22 16:03:55 · 393 阅读 · 0 评论 -
门面模式VS中介者模式
门面模式为复杂的子系统提供给一个统一的访问界面,它定义的而是一个高层接口,该接口使得子系统更加容易使用,避免外部模块深入到子系统内部而产生于子系统内部细节耦合的问题。中介者模式是用一个中介对象来封装一系列同事对象的交互行为,它使各对象之间不再显示地引用,从而使其耦合松散,建立一个可扩展的应用架构 下面用一个工资计算的例子来说明两者的差别,先来看中介者模式实现工资计算:转载 2011-12-22 15:23:07 · 769 阅读 · 0 评论 -
包装模式大PK
包装模式包括:装饰模式、适配器模式、门面模式、代理模式、桥梁模式,下面来看看这5个包装模式的区别,用一个追星的例子来加以说明,首先来看代理模式:追星族只需要找代理要签名即可,真是的签名仍然是明星。代理模式主要用在不希望展示一个对象内部细节的场景中,比如一个远程服务部需要把远程连接的所有细节都暴露给外部模块,通过一个代理类,可以轻松解决,例如调用Webservices,在系统中的引用就是一个代理原创 2011-12-22 15:24:16 · 352 阅读 · 0 评论 -
简单工厂模式vs工厂方法模式vs抽象工厂模式
一、定义简单工厂模式(Simple Factory):将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。封装了创建不同对象这个变化点。属于创建模式。工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口转载 2011-12-22 15:27:53 · 436 阅读 · 0 评论 -
设计模式利剑13-适配器模式
定 义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起共走的两个类能够在一起工作优 点: 1、适配器模式可以让连个没有任何关系的类在一起运行,只要适配器这个角色能够搞定他们就成 2、增加了类的透明性 3、提高了类的复用度 4、灵活非常好用转载 2011-12-22 15:41:50 · 313 阅读 · 0 评论 -
设计模式利剑11-装饰模式
概 要:在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展” 能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何原创 2011-12-22 15:43:32 · 343 阅读 · 0 评论 -
JDK里的设计模式
Structural(结构模式)Adapter:把一个接口或是类变成另外一种。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.annot转载 2011-12-27 12:01:33 · 309 阅读 · 0 评论 -
一句话评论设计模式六大原则
原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是有了他们才使我们由代码工人转为艺术家。下面我来点评一下六大原则,望各位拍砖:1、单一职责原则(Single转载 2012-02-01 09:30:07 · 274 阅读 · 0 评论 -
设计模式利剑9-命令模式
定 义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢 复功能优 点: 1、类间解耦,调用者角色与接受者角色之间没有任何依赖关系,调用者实现功能时只需调用command抽象类的execute方法即可, 不用管是具体哪个接受者执行转载 2011-12-22 15:45:45 · 423 阅读 · 0 评论 -
设计模式利剑10-责任链模式
定 义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合,将这些对象连成一条链,并沿着这条链传递该请求, 直到有对象处理它为止优 点:将请求和处理分开,请求者可以不知道是谁处理的,处理者不用知道请求的全貌,两者解耦,提高了灵活性,责任链模式减低了请求 的发送端和接收端之间的耦合,使多个对象有机会转载 2011-12-22 15:44:50 · 345 阅读 · 0 评论 -
设计模式利剑12-策略模式
定 义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换优 点: 1、算法可以自由切换 2、避免使用多重条件判断 3、扩展性好缺 点: 1、策略类数量多 2、所有的策略类都需要对外暴露使用场景:转载 2011-12-22 15:42:38 · 347 阅读 · 0 评论 -
结构类模式大PK
结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象,从而实现新的功能(对象结构型模式),结构类模式包括:适配器模式、组合模式、桥梁模式、装饰模式、门面模式、享元模式和代理模式,他们都是通过组合类或对象产生更大结构以适应更高层的逻辑需求1、代理模式VS装饰模式 装饰模式就是代理模式的一个特殊应用,两者的共同点是都具有相同的接转载 2011-12-22 15:26:27 · 420 阅读 · 0 评论 -
行为类模式大PK
行为类模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式1、命令模式VS策略模式 命令模式与策略模式的类图很相似,只是命令模式多了一个接受者角色,策略模式的意图是封装算法,它认为算法已经是一个完整的,不可分割的原子业务,即其意图是让这些算法独立,并且可以相互替换,让行为的变化独立于拥有行为的客户;转载 2011-12-22 15:25:43 · 401 阅读 · 0 评论 -
设计模式利剑15-组合模式
定 义:将对象组合成树形结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性优 点: 1、高层模块调用简单 2、节点自由增加使用场景: 1 .你想表示对象的部分 - 整体层次结构 2 .你希望用户忽略组合对象与单转载 2011-12-22 15:33:51 · 458 阅读 · 0 评论 -
策略模式VS桥梁模式
策略模式与桥梁模式两者之间类图很相似,让我们从一个邮件发送的案例来分析策略模式与桥梁模式的区别邮件都有两种格式的,文本邮件与html邮件,而发送邮件有很多邮箱服务器可以发送,先用策略模式实现邮件发送,具体UML图如下: 再来看看桥梁模式实现邮件发送,桥梁模式关注的是抽象和实现的分离 策略模式和桥梁模式很相似,我们只能够从语义上来区别它们,策略模式是一个行为模式,旨在封转载 2011-12-22 15:25:04 · 469 阅读 · 0 评论 -
设计模式利剑22--享元模式
定 义:使用共享对象可以有效地支持大量的细粒度的对象,享元模式可以避免大量非常相似类的开销。在程序设计中有时需要生成大量细 粒度的类实例来表示数据。如果发现这些实例除了几个参数外基本伤都是相同的,有时就能够受大幅度第减少需要实例化的类的 数量。如果能把这些参数移到类实例外面,在方法调用时将他们传递进来,就可以通过共享大幅度地减少转载 2011-12-22 15:29:41 · 341 阅读 · 0 评论 -
设计模式利剑17-门面模式
定 义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用优 点: 1、减少系统的相互依赖 2、提高了灵活性 3、提高了安全性缺 点:最大的缺点就是不符合开闭原则,对修改关闭,对扩展开放,应用场景:转载 2011-12-22 15:32:22 · 308 阅读 · 0 评论 -
创建类模式大PK
创建类模式包括工厂方法模式、创建者模式、抽象工厂模式、单例模式和原型模式,他们能够提供对象的创建和管理职责。创建型模式,就是用来创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。为什么需要创建型模式所有的创建型模式都有两个永恒的主旋律:第一,它们都将系统使用哪些具体类的信息封装起来;第二,它们隐藏了这些类的实例是如何被创建和组织的。外界对于这些对转载 2011-12-22 15:27:13 · 369 阅读 · 0 评论 -
设计模式利剑16-观察者模式
定 义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新优 点: 1、观察者和被观察者之间是抽象耦合 2、建立一套出发机制应用案例: 先来看看类图: 1.抽象主题角色:把所有对观察者对象的引用保存转载 2011-12-22 15:33:04 · 473 阅读 · 0 评论 -
java中对委托模式的理解
/*委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。?“委托”在C#中是一个语言级特性,而在Java语言中没有直接的对应,但是转载 2011-11-13 11:02:33 · 513 阅读 · 0 评论 -
读书记录
一《java与模式》二《重构改善既有代码》设计水平比较低,所以拿这两本书来补充一下营养。08年接触设计模式到现在整整4年了,4年的时间还是没有完全消化这个东西。模式名称、模式Demo都记得,不过在项目中应用起来效果不明显,主要用过单例、工厂、模板、策略、迭代器、观察者、代理、原型。基本上没用过的有命令、桥梁、状态、装饰、门面、责任链、适配器、建造者、解释器、享元,备忘录等。希望在以原创 2012-06-23 23:10:28 · 353 阅读 · 0 评论