设计模式
fight_zhi
这个作者很懒,什么都没留下…
展开
-
《设计模式》-- 抽象工厂模式
抽象工厂抽象工厂认识思考优缺点使用场景UML图代码实现认识 抽象工厂是同时创建多个接口(多个产品)的实现类对象,实现解耦合思考 抽象工厂模式能够处理更加复杂的对象的细节封装,可以对一个产品簇(多个接口)封装细节,对外部调用实现透明。而简单工厂模式和工厂方法模式都是对一个产品(一个接口)进行操作。 抽象工厂模式存在多个工厂实现类,可以结合简单工厂模式,根据type创建不原创 2017-03-16 13:38:56 · 200 阅读 · 0 评论 -
《设计模式》--单例模式
单例模式单例模式思考使用场景UML图代码实现饿汉式懒汉式类级内部类实现单例枚举实现单例思考 单例模式的实质是控制实例数量,当需要控制一个类的实例只能有一个时,使用单例模式。使用场景java中缓存的实现:正是一种懒汉式的方式,查询的时候初始化缓存一次,之后访问每次访问初始化的缓存对象数据库连接池:线程池:UML图代码实现饿汉式结构 私有化无参构造函数 创建一原创 2017-03-16 13:37:33 · 212 阅读 · 0 评论 -
《设计模式》-- 观察者模式
观察者模式参考:《JAVA与模式》之观察者模式观察者模式认识思考使用场景优缺点UML图代码实现推模型拉模型jdk提供的接口认识 观察者模式是对象的行为模式,定义了一种一对多的依赖关系,多个观察者对象同时监听一个主题对象,当主题对象状态发生改变时,会通知所有观察者对象更新。是一种发布-订阅模式。思考 在观察者模式中,观察者和目标是单向依赖的,只有观察者依赖目标,观察者只能原创 2017-03-23 23:06:11 · 223 阅读 · 0 评论 -
《设计模式》-- 访问者模式
访问者模式参考:《JAVA与模式》之访问者模式访问者模式认识思考使用场景优缺点UML图代码实现认识 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。变化的是访问者,不变的是被访问者 思考 本质是:预留通路,回调实现 有条件的接收访问,如果不满足条件,禁止访问使用原创 2017-03-29 22:57:06 · 308 阅读 · 0 评论 -
《设计模式》-- 解释器模式
解释器模式解释器模式认识思考使用场景优缺点UML图代码实现认识 解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。思考 本质:分离实现,解释执行使用场景 当配置文件中xml的结构发生改变后,能够很方便的获取相应元素、或者是属性的值,而不用再去修改解析xm的程序原创 2017-03-29 22:11:17 · 255 阅读 · 0 评论 -
《设计模式》-- 享元模式
享元模式参考:《JAVA与模式》之享元模式享元模式认识思考使用场景优缺点UML图单纯享元模式复合享元模式代码实现单纯享元模式复合享元模式认识 享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。避免不必要的资源损耗 在享元模式中,通常是第一次请求享元工厂时,享元工厂进行共享对象的初始化,然后放入享元工厂的缓存中,之后访问直接使用缓存中的对象。原创 2017-03-22 00:12:10 · 258 阅读 · 0 评论 -
《设计模式》-- 适配器模式
适配器模式适配器模式认识思考使用场景优缺点UML图类适配器对象适配器缺省适配代码实现类适配器对象适配器缺省适配认识 适配器模式是将一个类的接口变为客户端想要的另外一个接口,从而使原本因接口不匹配无法在一起工作的两个类能够在一起工作。适配器的目的是复用已有的功能。 适配器分为类适配器和对象适配器两种 缺省适配:为一个接口提供缺省实现,一般是一个抽象类原创 2017-03-21 23:19:16 · 203 阅读 · 0 评论 -
《设计模式》-- 命令模式
命令模式命令模式认识思考使用场景优缺点UML图代码实现普通命令模式宏命令认识 命令模式属于对象的行为模式,命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。 每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方原创 2017-03-28 13:41:11 · 371 阅读 · 0 评论 -
《设计模式》-- 代理模式
代理模式代理模式认识思考使用场景优缺点UML图代码实现认识 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 客户端操作代理对象时,具体的操作还是由被代理对象实现,客户端操作代理,代理操作被代理,被代理对象对于客户端是透明的。 代理模式同装饰模式不同在,代理模式中的被代理对象一般不通过客户端传入,对客户端透明;装饰原创 2017-03-21 13:14:18 · 290 阅读 · 0 评论 -
《设计模式》-- 迭代器模式
迭代器模式迭代器模式认识思考使用场景优缺点UML图代码实现认识 迭代子模式是对象的行为模式。迭代子模式可以顺序地访问一个聚合对象中的元素而不必暴露聚合对象的内部表示 JAVA聚合对象是实现了共同的java.util.Collection接口的对象,还有数组(最基本的聚合对象)思考 迭代器的关键思想就是把对聚合对象的遍历和访问从聚合对象中分离出来,放入单独的迭代器中处原创 2017-03-28 13:10:27 · 230 阅读 · 0 评论 -
《设计模式》-- 策略模式
策略模式策略模式认识思考使用场景优缺点UML图代码实现认识 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式很好的体现了开-闭原则和里氏替换原则思考 本质:分离算法,选择实现 策略模式的重心 策略模式的重心不是如原创 2017-03-21 00:31:16 · 448 阅读 · 0 评论 -
《设计模式》-- 装饰模式
装饰模式装饰模式认识思考使用场景优缺点UML图代码实现源码分析认识 动态地给一个对象添加一系列额外的职责,比子类继承更加灵活可配。 透明式装饰模式:装饰对象和被装饰对象实现完全相同的接口,或者装饰对象完全继承被装饰对象,装饰对象没有定义额外的方法实现。 半透明装饰模式:装饰对象在实现被装饰对象的接口或者继承被装饰对象之外,还有单独额外的自定义方法。这时装饰角色原创 2017-03-20 23:47:44 · 281 阅读 · 0 评论 -
《设计模式》-- 门面模式
门面模式门面模式认识思考使用场景优缺点UML图代码实现认识 提供一个门面去调用系统各个子模块,客户端调用门面,减少客户端与系统中各个子模块的交互,松散耦合,思考 Facade知道各个子模块,而各个子模块不应该知道Facade的存在 客户端也可以直接调用各个子模块,有外观也可以不使用使用场景 当需要调用系统内部多个子模块的时候,为了避免客户端分别调用子模块,提供一原创 2017-03-17 23:11:21 · 324 阅读 · 0 评论 -
《设计模式》-- 模板方法模式
模板方法模式模板方法模式认识思考使用场景优缺点UML图代码实现认识 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。思考 把程序中不变的部分抽象出来,放在抽象父类中,进行公共的实现,把变化原创 2017-03-27 13:11:23 · 359 阅读 · 0 评论