设计模式
_猜猜猜
这个作者很懒,什么都没留下…
展开
-
设计模式(一)——简单工厂
简单工厂模式的优点: (1)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品,简单工厂模式通过这种做法实现了对责任的分隔,它提供了专门工厂类用来创建对象。 (2)客户端无需知道所创建具体产品的类名,只需要知道具体产品类对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。 (3)通过引入配置文件,原创 2017-01-06 20:27:16 · 237 阅读 · 0 评论 -
设计模式(十二)——代理模式
在某些情况下,一个客户不想或是不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用,代理可以在客户端和目标对象之间起中介作用,并且通过代理对象去掉客户不能看到的内容和服务或是添加客户需要的额外服务。 代理模式组成:抽象主题角色,代理主题角色,真实主题角色。//抽象主题角色public interface AbstractPermission { public voi原创 2017-01-10 20:30:38 · 301 阅读 · 0 评论 -
设计模式(十一)——外观模式
外观模式可以理解为为系统增加一个外观类,这个外观类就是类似于网站的主页,相当于用户不用再与网站的子网页交互,而只需要与主页交互,可以理解为一个总的控制中心,用户和子系统的复杂关系由外观角色来实现,从而降低了系统的耦合度。 外观模式组成:外观角色,子系统角色,客户端。//子系统角色public class AirCondition { public void on(){ Sy原创 2017-01-10 19:32:26 · 256 阅读 · 0 评论 -
设计模式(十)——装饰者模式
装饰者模式可以在不改变一个对象本身的基础上给对象增加额外的新行为,通过继承机制可以实现这种功能,但是这种方法是静态的,用户不能够控制增加行为的实现和时机。其实按照设计模式的原则也不该使用继机制,而是使用关联机制。 装饰者模式组成:抽象构件,具体构件,抽象装饰类,具体装饰类。 通过装饰类中包含构件对象,再通过递归,就能够实现对构建类行为的增加。//抽象构件类public abstract cla原创 2017-01-09 17:55:45 · 227 阅读 · 0 评论 -
设计模式(九)——组合模式
组合模式比较容易理解,想到组合模式就应该想到树状结构图,组合模式描述了如何将容器对象(非叶子节点)和叶子对象(叶子节点)进行递归组合,使得用户在使用时无需对他们进行区分,可以一致的对待容器对象和叶子对象,这就是组合模式的动机。 组合模式核心在于引入了一个抽象类,它既是叶子类父类又是容器类父类,客户端针对抽象构建进行编程,无需知道它到底代表容器还是代表叶子,可以对它做统一处理。 组合模式组成:抽象原创 2017-01-09 16:25:20 · 290 阅读 · 0 评论 -
设计模式(八)——桥接模式
将抽象部分和它的实现部分分离,使他们都可以独立地变化。 组成:抽象类,扩充抽象类,实现类接口,具体实现类。 桥接模式最大的作用就是减少了类的个数,很重要的就是脱耦,将抽象化和实现化之间的耦合解脱开,将两个角色之间的继承关系改为关联关系。桥接模式中所指的脱耦就是将抽象化和实现化之间使用组合或聚合关系而不是继承关系,从而两部分可以相对独立的变化。//实现类接口public interface Co原创 2017-01-08 21:51:10 · 203 阅读 · 0 评论 -
设计模式(七)——适配器模式
将现有接口转化为客户类期望的接口,这样保证了对现有类的重用。在适配器模式中可以定义一个包装类,包装不兼容接口的对象,这个包装类指的就是适配器。当客户端调用适配器的方法时,在适配器类的内部将调用适配者类(被包装的对象)的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器可以使由于接口不兼容而不能交互的类可以一起工作,这就是适配器模式的模式动机。 适配器模式包含:目标抽象类,适原创 2017-01-08 21:20:03 · 181 阅读 · 0 评论 -
设计模式(六)——单例模式
单例模式提供了一种方式使得对象唯一化,一个类只能创建唯一一个实例。单例模式只包含一个Singleton(单例类),在单例类内部实现只生成一个实例,通过一个私有的构造函数,确保用户无法通过new关键字直接实例化单例类,而是通过一个静态的工厂方法来检测实例是否存在并实例化自己,然后储存在静态成员变量中,以确保只有一个实例被创建。//一般结构public class Singleton { pr原创 2017-01-08 17:42:58 · 311 阅读 · 0 评论 -
设计模式(五)——原型模式
原型模式就是通过复制对象自身,从而克隆出多个与原型对象一模一样的对象。 原型模式包含三个组成:抽象原型类,具体原型类。 浅克隆与深克隆转载 2017-01-07 18:03:58 · 232 阅读 · 0 评论 -
设计模式(四)——建造者模式
建造者模式是用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品给用户。对于用户无需关心这个对象是如何创建出来的,直接使用即可。 目的:用于创建复杂对象,将复杂对象的创建与表示分离,使得同样的构建可以创建不同的表示。 组成:抽象创建者,具体创建者,产品角色,指挥者。//抽象创建者public abstract class MealBuilder { protected Meal原创 2017-01-07 16:39:59 · 234 阅读 · 0 评论 -
设计模式(三)——抽象工厂模式
抽象工厂方法是工厂方法的泛化版,工厂方法是一种特殊的抽象工厂方法。抽象工厂方法中,一个具体的工厂可以生产多个具体的产品。 抽象工厂方法同样包含四个角色:抽象工厂,具体工厂,抽象产品,具体产品。//抽象产品public interface Television { public void play();}//具体产品public class HaierTelevision implem原创 2017-01-07 15:44:04 · 213 阅读 · 0 评论 -
设计模式(十三)——享元模式
系统中对象数目太多,有些对象是相同或是相似的,享元模式就是实现对象复用。 一个文本文档中有大量的字符串,如果每个字符串都用一个单独对象来表示,那么整个的运行开销太大了,享元模式就是解决这样的问题,逻辑上每个出现的字符串都有一个对象与之对应,然而在物理上他们共享同一个享元对象,这个对象可以出现在同一个文档的不同地方,相同的字符串对象指向同一个实例,储存这个实例的对象可以称为享元池。 享元模式组成:原创 2017-01-10 21:26:09 · 324 阅读 · 0 评论