设计模式
ruancoder
这个作者很懒,什么都没留下…
展开
-
设计模式之单例模式
定义:确保一个类只有一个实例,并提供一个全局访问点。简介:单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,阻止所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。首原创 2016-07-16 23:42:47 · 1904 阅读 · 0 评论 -
设计模式之装饰者模式
概述装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点(1).装饰者和被装饰者对象有相同的超类型。(2).你可以用一个或多个装饰者包装一个对象。(3).既然装饰者和被装饰者对象有相同的超类型,所以在任何需要原始对象(被包装的)的场合,可以用装饰多的对象代替它。(4).装饰者可以在原创 2016-08-28 01:03:05 · 1761 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。观察者模式有时又被称作发布/订阅模式。如图所示。主题和观察值定义了一对多的关系。观察者依赖于此主题,只要主题状态一有变化,观察者就会被通知。以包含Subject和Observer接口的类设计来观察者模式,简单类图如下。这和一对多的关系有何关联?利用观察者原创 2016-08-07 23:55:38 · 2139 阅读 · 7 评论 -
设计模式之模板方法模式
定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。这个模式是用来创建一个算法的模板。什么是模板?模板就是一个方法。更具体的说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的结构保持不变,同时由子类提供部分实现。类图:原创 2016-10-30 17:52:02 · 399 阅读 · 0 评论 -
设计模式之工厂模式
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。工厂方法模式能够封装具体类型的实例化。看看下面的类图,抽象的Creator提供了一个创建对象的方法的接口,也成为“工厂方法”。在抽象的Creator中,任何其他实现的方法,都可能使用到这个工厂方法所制造出来的产品,但只有子类真正实现这个工厂方法并创建产品。当只有一原创 2016-10-30 18:47:24 · 382 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。现在,我们知道,这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容。这可以让客户从实现的接口解耦。如果在一段时间之后,我们想要改变接口,适配器可以将改变的部分封装起来,客户就不必为了应对不同的接口而每次跟着修改。一个适配器需要做多少“适配”的工作?如果我需要原创 2016-10-30 23:01:48 · 595 阅读 · 0 评论 -
设计模式之命令模式
定义将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。结构客户端(Client):创建一个具体命令(ConcreteCommand)对象并确定其接收者。命令(Command):声明了一个给所有具体命令类的抽象接口。具体命令(ConcreteCommand):定义一个接收者和行为之间的弱耦合;实现execute()方法,负责调原创 2016-10-31 00:11:21 · 341 阅读 · 0 评论