设计模式
任缥缈
天狼啸月的追逐
展开
-
设计模式目录——DesignPatternsDirectory
设计模式之StrategyPattern策略模式设计模式之工厂方法模式(FactoryMethod模式)设计模式之AbstractFactoryPattern抽象工厂模式设计模式之AdapterPattern适配器模式设计模式之ChainOfResponsibilityPattern责任链模式设计模式之ObserverPattern观察者模式设计模式之BuliderPattern建造者模式设计模式之StaticProxyPattern静态代理模式详解设计模式之DynamicProxyPatt原创 2020-05-16 14:27:02 · 124 阅读 · 0 评论 -
设计模式之StrategyPattern策略模式
策略模式的定义与特点策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。策略模式的主要优点如下:多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句。策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。策略模式可以提供相同行原创 2020-05-16 10:00:27 · 180 阅读 · 0 评论 -
设计模式之工厂方法模式(FactoryMethod模式)
模式的定义与特点定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。工厂方法模式的主要优点有:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;其缺点是:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。特点:工厂方法模式中考虑的是一类产品的生产,原创 2020-05-16 10:11:57 · 308 阅读 · 0 评论 -
设计模式之DynamicProxyPattern动态代理模式详解
关于代理的定义与特点,请查阅《Java设计模式之静态代理模式详解》动态代理与静态代理的区别:与静态代理相比,动态代理的动态主要体现在:1:具体代理类(ProxySubject)的生成是在运行期动态产生的,而非编译期就已经静态存在;2:具体代理类(ProxySubject)与被代理类的代理关系(ProxySubject持有RealSubject的引用),是想办法动态注入进入的;3:具体代理类(ProxySubject)对被代理类的功能的代理是在动态生成的代理类内部,想办法去动态的调用被代理类的对应方原创 2020-05-16 14:00:14 · 134 阅读 · 0 评论 -
设计模式之StaticProxyPattern静态代理模式详解
代理模式的定义与特点代理模式的定义一:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的定义二:什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。代理模式的主要优点有:1、代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;2、原创 2020-05-16 14:39:06 · 183 阅读 · 0 评论 -
设计模式之BuliderPattern建造者模式
建造者模式定义与特点建造者(Builder)模式定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。该模式的主要优点:1、各个具体的建造者相互独立,有利于系统的扩展。2、客户端不必知道产品内部组成的细节,便于控制细节风险。同样的,主要缺点:1、产品的组成部分必须相同,这限制了其使用范围。2、如果产原创 2020-05-16 13:41:41 · 157 阅读 · 0 评论 -
设计模式之ObserverPattern观察者模式
现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系。所有这些,如果用观察者模式来实现就非常方便。观察者Observer模式的特点和定义:观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一原创 2020-05-16 13:29:27 · 174 阅读 · 0 评论 -
设计模式之ChainOfResponsibilityPattern责任链模式
模式的定义与特点责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。责任链模式也叫职责链模式。是一种对象行为型模式。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了。其主要优点如下。降低了对象之间的耦合度。该模式使得一个对原创 2020-05-16 13:21:52 · 194 阅读 · 0 评论 -
设计模式之AdapterPattern适配器模式
在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。通俗来讲,适配器就是一个中转站,把A模型转换为B模型。适配器模式的定义与特点:定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,类结构型模式类之间的耦合原创 2020-05-16 12:21:15 · 132 阅读 · 0 评论 -
设计模式之AbstractFactoryPattern抽象工厂模式
同种类称为同等级, 抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品族,下图所示的是海尔和 TCL 两家工厂所生产的电视机与空调对应的关系图。模式的定义与特点一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。使用抽象工厂模式一般要满足以下条件:系统中有多个产品族,每个具原创 2020-05-16 10:21:29 · 195 阅读 · 0 评论