设计模式
文章平均质量分 81
肆零
这个作者很懒,什么都没留下…
展开
-
详解设计模式——工厂方法模式
工厂方法模式(Factory Method)定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类图:1.很多工厂都有一些相同的行为,比如汽车工厂。我们需要抽象这些相同的行为成接口,每个工厂都实现这个接口。1. publicinterfaceIFactory{2. 3. publicvoid creat原创 2017-05-25 21:26:17 · 272 阅读 · 0 评论 -
详解设计模式——抽象工厂模式
抽象工厂模式(Abstract Factory)为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。抽象工厂是工厂模式的升级版,他用来创建一组相关或者相互依赖的对象。来看下抽象工厂模式的类图:上节学习了工厂模式,类的创建依赖工厂类,程序需要扩展时,我们必须创建新的工厂类。工厂类是用来生产产品的,那我们也可以把“工厂类当成我们要生产的产品”,所以抽象工厂就是“工厂的工厂原创 2017-05-25 21:28:01 · 251 阅读 · 0 评论 -
详解设计模式——建造者模式
建造者模式(Builder)将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,由于需求的变化,这个复杂对象的某些部分经常面临着剧烈的变化,一些基本部件不会变。所以需要将变与不变分离。与抽象工厂的区别:在建造者模式里,有个指导者(Director),由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得原创 2017-05-25 21:29:51 · 239 阅读 · 1 评论 -
详解设计模式——模板方法模式
模板方法模式(Template Method)定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类图:模板方法模式是编程中经常用到的模式,其非常简单,AbstractClass叫抽象模板,其方法分为3类:1.抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。2.模版方法:由抽象类声明并加以实原创 2017-05-26 12:08:30 · 250 阅读 · 0 评论 -
详解设计模式——适配器模式
适配器模式(Adapter Class/Object)是指将一个接口转换成客户端希望的另外一个接口,该模式使得原本不兼容的类可以一起工作。举个例子:macbook pro有一个HDMI接口,一条HDMI接口的数据线,现在要外接显示器,而显示器只有VGI接口,我们需要一个HDMI-VGI转换器,这个转换器其实起到的作用就是适配器,让两个不兼容的接口可以一起工作。类图:适配器有4种角色原创 2017-05-26 12:09:28 · 338 阅读 · 0 评论 -
详解设计模式——外观模式
外观模式(Facade)为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。降低访问复杂系统的内部子系统时的复杂度。类图:在客户端和复杂系统之间再加一层,将调用顺序、依赖关系等处理好。举个例子:我们经常用的电脑,开机其实是个非常复杂的过程,而我们只需要按开机按钮就原创 2017-05-26 12:11:06 · 294 阅读 · 0 评论 -
详解设计模式——装饰器模式
装饰器模式(Decorator)对客户透明的方式动态地给一个对象附加上更多的责任,同时又不改变其结构。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。类图:1.抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。2.具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。3.装饰(Decorator)角色:持原创 2017-05-27 10:49:38 · 355 阅读 · 0 评论 -
详解设计模式——观察者模式
观察者模式(Observer)对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。类图:1.抽象主题(Subject)角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。2.抽象观察者(Observer)角色:为所有具体原创 2017-05-27 10:50:23 · 312 阅读 · 0 评论 -
详解设计模式——策略模式
策略模式(Strategy)定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。类图:1.Strategy:策略接口,用来约束一系列具体的策略算法。Context使用这个接口来调用具体的策略,实现定义的策略。2.ConcreteStrategy:具体的策略实现,也就是具体的算法实现。3.Context:上下午,负责与具体的策略原创 2017-05-27 10:51:00 · 217 阅读 · 0 评论