设计模式
GastonPeng
进步的困难是有的,但是必须得需要你自己去适应进步的过程,办法总比困难多!
展开
-
简单工厂模式
简单工厂模式:SimpleFactory1、基本原理 由一个工厂类根据传入的参数(一般是字符串参数),动态决定应该创建哪一个产品子类(这些产品子类继承自同一个父类或接口)的实例,并以父类形式返回。 该模式中包含的角色及其职责 工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类提供静态方法,可以被外界直接调用,创建所需的产品对象。 抽象产品(Pr...原创 2018-06-27 10:19:10 · 116 阅读 · 0 评论 -
工厂方法模式
工厂方法模式: FactoryMethod1、基本原理 工厂方法模式的对简单工厂模式进行了抽象。有一个抽象的Factory类(可以是抽象类和接口),这个类将不在负责具体的产品生产,而是只制定一些规范,将实际创建工作推迟到子类去完成。在这个模式中,工厂类和产品类往往可以依次对应。即一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品,这个具体的工厂就负责生产对应的产品。 Define an ...原创 2018-06-27 10:19:04 · 269 阅读 · 1 评论 -
单例模式
单例模式: Singleton1、基本原理 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 显然单例模式的要点有三个:一是某各类只能有一个实例;二是它必须自行创建这个事例;三是它必须自行向整个系统提供这个实例。 饿汉式单例模式:优点:线程安全;在类加载的同时已经创建好一个静态对象,调用时反应速度快。缺点: 资源利用效率不高,可能getInstance...原创 2018-06-27 10:18:55 · 401 阅读 · 0 评论 -
外观模式
外观模式:Facade1、基本原理外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使子系统的更加容易使用。 该模式的原理图如下所示: 这是未使用外观模式之前的情况,不符合迪比特法则。下面给出使用外观模式后的情形。 通过外观对象来组织细粒度的服务的调用,外观对象提供给外部应用程序以使用的服务,而具体的调用细粒度的过程则被外观对象给封装起来,当然这个过程就是封装变化的...原创 2018-06-27 10:18:46 · 135 阅读 · 0 评论 -
适配器模式
适配器模式:Adapter1、基本原理 适配器模式将一个接口转换成客户希望的另外一个接口。它使得原来由于接口不兼容而不能在一起工作的那些类可以一起工作。。——Gang of Four有两种类型的适配器模式:–类适配器(采取继承的方式) –对象适配器(采取对象组合方式)(推荐):实现思路:继承新系统,关联旧系统该模式中包含的角色及其职责 1 目标接口(Target):客户所期待的接口。目标可以是具...原创 2018-06-27 10:17:36 · 152 阅读 · 0 评论 -
代理模式
代理模式:Proxy1、基本原理代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。 代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。 代理模式一般涉及到的角色l 抽象角色:真实对象和代理对象的共同接口l 真实角色:真实对象,最终要引用的对象l 代理角色n 内部含有对真实对象的引用,从而可以操作真实对象n...原创 2018-06-27 10:06:39 · 176 阅读 · 0 评论 -
装饰模式
装饰模式:Decorator1、基本原理在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响将为最低?这就是本...原创 2018-06-27 10:06:29 · 161 阅读 · 0 评论