摘要:
抽象工厂是用于产品横向扩展。 例如:你的系统,要消费多个产品,假如你的产品,目前只支持SQLSERVER。客户需要用到MYSQL,类似这种变化的需求。就应该用抽象工厂来解决。 使用端: 工厂接口: 产品接口: 工厂: 产品: 阅读全文
摘要:
工厂方法模式,是一个用处不太多的设计模式。 将一个类,对另一个类的直接引用。通过工厂修改成间接引用。 这样做的好处在于,将对象创建延迟。这个延迟就可以屏蔽了变化,同时为扩展性留下了基础 代码如下: 使用代码: 工厂: 对象代码: 接口: 阅读全文
摘要:
工厂要解决的问题就是对象的创建问题。 对象创建有以下几个问题: 1、对象与对象之间的引用,都是用NEW来完成。这是一个多对多的关系,后期如果某一个对象有变化,就需要找到所有引用过该对象的类进行修改。这是一个复杂的工作。 2、对象与对象之间直接引用,就是一种强耦合的关系。当我们增加一种对象(产品),或 阅读全文
摘要:
模板方法,就是通过抽像类(abstract)将复用部份抽离出来、差异部份,通过(abstract、virtual)来规范起来。 这样做的好处是。 1、复用性 2、耦合性降低。 试想一下,有一个流程是80%重合度的,20%差异化的。这个时候,你要用到的就是模板方法。 例如:机场的安检系统、 1、所有人 阅读全文
摘要:
解释器模式就类似百度翻译,还有就是模板引擎,加密算法等。 就是在不控的情况下,输入的内容不能确定。按照一定的规律来生成结果 特点如下: 1、需求(对于百度翻译来说、输入的内容在开发时不能确定。加密算法也是一样,用户要加密什么内容。你在编程时不知道,所以要动态处理)不确定 2、按规律来翻译内容 例子中 阅读全文
摘要:
代理模式,就是AOP的编程,类似于中介。对某个对象的使用进行包装。这一点类似于外观模式。 代理模式和外观模式的区别是什么? 代理模式的思想是AOP编程,通过建立一个中间对象,来为某个对象的使用增加、屏蔽一些功能。 外观模式是屏蔽使用端和子系统间的业务逻辑关系,使他们解除耦合。更好地重用、和维护。 使 阅读全文
摘要:
享元模式 要解决的问题是对象重复创建的问题!这一点你会想到,我用单例模式可以解决。是的。 享元模式和单例模式都是要维护对象的唯一性: 享元模式和单例模式的区别在哪里呢? 享元模式由对象的外部负责(通常用工厂)维护对象的唯一性。 单例模式是对象自身负责维护对象的唯一性。 拼字游戏: 例1: 例2: S 阅读全文
摘要:
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。 就是客户端和子系统之间耦合度高,依赖很强。通过接口使他们解藕,通过做一个中间层(BLL)使他们的复杂性,逻辑封装起来,对使用端(WEB、UI等)调用简单简洁,不用关心逻辑的变化。 阅读全文
摘要:
装饰模式就是在程序运行的过程中,动态地增加一些功能!(这里面包括的原理是,1、原程序不需要改变,2、运行时增加(其实就像AOP面向切面编程)),这样的功能是非常有用的。 试想一下,很多程序在编写的时候,你根本不知道对像该如何组装。类型打LOL游戏的装备一下,用户要买什么样的装备呢?你在开发的时候并不 阅读全文