设计模式
tingzhushaohua
学习
展开
-
创建型模式之单例模式
为什么使用单例模式在应用系统开发中,我们常常有以下需求: 1.在多个线程之间,比如初始化一次socket资源;比如servlet环境,共享同一个资源或者操作同一个对象2.在整个程序空间使用全局变量,共享资源3.大规模系统中,为了性能的考虑,需要节省对象的创建时间等等。因为Singleton模式可以保证为一个类只生成唯一的实例对象,所以这些情况,Singleton模式就派上用场了。实现单例步骤1.构原创 2017-05-23 23:57:36 · 418 阅读 · 0 评论 -
行为型模式之中介者模式实现
中介者(Mediator)模式是行为型模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象通其他对象交互,Mediator对象起着控制器的作用。用一个中介对象来封装一些列的对象交互,中介者使各对象不需要显示的相互引用,从而降低耦合;而且可以独立地改变它们之间的交互。原创 2017-06-14 18:10:49 · 721 阅读 · 0 评论 -
结构型模式之享元模式实现
享元模式是构造型模式之一,它通过与其他类似对象共享数据来减少内存占用。是以共享的方式,高效的支持大量的细粒度的对象。原创 2017-06-11 22:03:23 · 318 阅读 · 0 评论 -
结构型模式之组合模式实现
组合模式是构造型模式之一,通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树。适用于单个对象和组合对象的使用具有一致性,将对象组合成树形结构以表示“部分-整体”原创 2017-06-10 00:24:54 · 370 阅读 · 0 评论 -
行为型模式之命令模式实现
命令模式是行为设计模式的一种。命令模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。但在有些情况下必须使用一个专门的类对这些调用过程加以封装;适用于将一个请求封装成一个对象,从而使你可用不同请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。原创 2017-06-14 10:32:44 · 563 阅读 · 0 评论 -
行为型模式之迭代器模式实现
迭代模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。Iterator模式就是为了有效地处理按顺序进行遍历访问的一种设计模式。在迭代器中持有一个集合的引用,因此通过迭代器就可以访问集合;迭代器模式提供了一种有效的方法屏蔽容器类的内部实现细节,而且能够对容器内包含的对象进行顺序遍历访问。原创 2017-06-17 13:27:14 · 566 阅读 · 0 评论 -
创建型模式之建造者模式实现
Builder模式复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。对象的创建:Builder模式是为对象的创建而设计的模式- 创建的是一个复合对象:被创建的对象为一个具有复合属性的复合对象- 关注对象创建的各部分的创建过程:不同的builder对不同的属性有不同的创建方法。原创 2017-06-03 23:24:30 · 356 阅读 · 0 评论 -
创建型模式之抽象工厂模式实现
抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。 和工厂模式重要区别:工厂模式只能生产一个产品。(要么香蕉、要么苹果)抽象工厂可以一下生产一个产品族(里面有很多产品组成)原创 2017-06-03 00:23:34 · 395 阅读 · 0 评论 -
创建型模式之工厂模式实现
工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。原创 2017-06-02 00:06:29 · 454 阅读 · 0 评论 -
创建型模式之原型模式实现
Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有与原型一样的数据。1)由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。 2)目标对象是原型对象的一个克隆。也就是说,通过Prototype模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的值。原创 2017-06-04 23:38:07 · 471 阅读 · 0 评论 -
设计模式基础理解及整理实现
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。本质:把简单的问题复杂化(标准化),把环境中的各个部分进行抽象、归纳、解耦合。最终目的:高内聚,低耦合。原创 2017-03-22 18:08:07 · 868 阅读 · 0 评论 -
结构型模式之适配器模式实现
适配器模式是构造性模式之一,通过适配器模式可以改变已有类(或外部类)的接口形式。适用于:是将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。案例#include<iostream>原创 2017-06-10 17:42:50 · 274 阅读 · 0 评论 -
结构型模式之桥接模式实现
桥接模式是构造性的设计模式之一。它是基于类的最小设计原则,通过使用封装、聚合以及继承等行为来让不同的职责承担不同的责任。它的主要特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。原创 2017-06-10 19:09:14 · 393 阅读 · 0 评论 -
结构型模式之装饰模式实现
装饰模式又叫包装模式。通过一种对客户端透明的方式来扩展对象功能,是继承关系的一个替换方案。装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。类图角色和职责适用于:装饰着模式(Decorator Pattern)动态的给一个对象添加一些额外的职责。就增加功能来说,此模式比生成子类更为灵活。原创 2017-06-09 21:56:08 · 353 阅读 · 0 评论 -
简单工厂模式
概念简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类负责创建其他类的实例,被创建的实例通常都具有共同的父类。严格来说,简单工厂模式不符合开闭原则 ,不属于设计模式。模式中包含的角色及其职责1.工厂角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。2.抽象角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所原创 2017-05-25 00:03:58 · 337 阅读 · 0 评论 -
行为型模式之解析器模式实现
一些应用提供了内建(Build-In)的脚本或者宏语言来让用户定义他们能够在系统中进行的操作。Interpreter模式的目的就是使用一个解释器为用户提供一个一门定义语言的语法表示的解释器,然后通过解释器来解释语言中的句子。原创 2017-06-17 11:09:39 · 457 阅读 · 0 评论 -
行为型模式之状态模式实现
状态模式是行为模式的一种。State模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转译到表现不同状态的一系列类当中,可以把复杂的判断逻辑简化。 适用于通过用户的状态改变对象的行为原创 2017-06-17 08:56:05 · 478 阅读 · 0 评论 -
行为型模式之访问者模式实现
访问者模式,是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作角色和职责。角色和职责 适用于数据结构 和 作用于数据结构上的操作 进行解耦合;适用于数据结构比较稳定的场合。访问者模式优点是增加新的操作很容易,因为增加新的操作就意味着增加一个新的访问者,访问者模式将有关的行为集中到一个访问者对象中,访问者模式的缺点是增加新的数据结构变得困难了。原创 2017-06-16 23:22:21 · 562 阅读 · 0 评论 -
行为型模式之备忘录模式实现
备忘录模式是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。 适用于在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以将以后的对象状态恢复到先前保存的状态原创 2017-06-15 21:28:18 · 375 阅读 · 0 评论 -
行为型模式之观察者模式实现
观察者(Observer)模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的对象之间保持状态同步。定义对象间一种一对多的依赖关系,使得每一个对象改变状态,则所有依赖于他们的对象都会得到通知。原创 2017-06-14 22:30:12 · 400 阅读 · 0 评论 -
行为型模式之策略模式实现
策略(Strategy)模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。策略模式主要用来平滑地处理算法的切换。原创 2017-06-14 16:05:08 · 346 阅读 · 0 评论 -
行为型模式之模板模式实现
模板方法模式是行为型模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。模板模式一般应用在具有以下条件的应用中: 具有统一的操作步骤或操作过程; 具有不同的操作细节; 存在多个具有统一操作步骤的应用场景,但某些具体的操作细节却各不相同。总结:在抽象类中统一操作步骤,并规定好接口;让子类实现接口。这样可以把各个具体的子类和操作步骤解耦合原创 2017-06-13 21:19:03 · 294 阅读 · 0 评论 -
结构型模式之外观模式实现
外观模式为一组具有类似功能的类群,比如类库、子系统等等,提供一个一致的简单的界面。这个一致的界面被称作外观。角色和职责 Facade:为调用方,定义简单的调用接口; Clients:调用者。通过Facade接口调用提供某功能的内部类群; Packages:功能提供者。指提供功能的类群(模块或子系统)适用于:为子系统中统一一套接口,让子系统更加容易使用。原创 2017-06-11 16:56:56 · 416 阅读 · 0 评论 -
结构型模式之代理模式实现
概念Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。原创 2017-06-09 14:07:56 · 305 阅读 · 0 评论 -
行为型模式之责任链模式实现
职责链模式是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。适用于:链条式处理事情,工作流程化、消息处理流程化、事物流程化原创 2017-06-14 11:50:59 · 389 阅读 · 0 评论