设计模式
骆驼绵羊
不像程序猿的猿
展开
-
设计模式(一)单例模式
单例模式算是设计模式里面比较简单的一种了,看了一些资料,见有些资料甚至总结了七八总写法,个人感觉没有必要~~~只需要知道最经常用的就可以了。 单例优点: 在内存中只有一个实例,减少内存开支,特别是一个对象需要频繁新建、销毁时,而且创建或销毁时性能又无法优化,则单例模式的优势就会特别明显;单例模式可以避免对资源的多重占用,例如写一个文件动作,由于只有一个实例存在,避免对同一个资源文件原创 2016-08-07 22:01:38 · 240 阅读 · 0 评论 -
设计模式(七)——装饰模式
定义 Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality 动态地给一个对象添加一些额外的职责,就增原创 2016-08-27 20:49:58 · 436 阅读 · 0 评论 -
设计模式(八)——策略模式
也称作政策模式(Policy Pattern) Define a family of algrithuns, encapusulate each one ,and make them interchagenable 定义一组算法,将每个算法都封装起来,并且使他们之间可以互换 类图 Context封装角色: 也叫作上下文,起承上启下封装做用,屏蔽高层原创 2016-08-29 20:18:45 · 467 阅读 · 0 评论 -
设计模式(二)代理模式
代理模式是一种使用效率非常高的模式,其定义:为其他对象提供一种代理以控制对这个对象的访问。 三个角色: Subject :一个普通业务类型的定义,无特殊要求RealSubject:具体主题角色,也叫做被委托角色、被代理角色,是业务逻辑的执行者Proxy代理主题角色:负责对真实角色的应用,把所有抽象主题类定义成的方法限制委托给真实主题角色实现,并且在真实主题角色处理完毕前后做预原创 2016-08-09 17:26:38 · 285 阅读 · 0 评论 -
设计模式(九)——适配器模式
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起的两个类能够在一起工作。 适配器模式是把一个接口或类转换成其他的接口或者类,从另一方面讲,适配器模式也是一种包装模式,类图如下: 类图 三个角色: Target目标角色:该角色定义把其他类转换成何种接口,也就是期望接口; Adaptee源角色:想要转换的对象,是已经存在运行良好的类; Ad原创 2016-08-30 20:44:55 · 301 阅读 · 0 评论 -
设计模式(三)动态代理
小白制作,大牛绕道。 1. 概述 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。首先我们先来看看java的API帮助文档是怎么样对这两个类进行描述的。 InvocationHandler:转载 2016-08-10 10:55:35 · 280 阅读 · 0 评论 -
设计模式(四)——工厂模式
为什么要用工厂模式 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况, 新对象的建立就原创 2016-08-24 21:41:49 · 257 阅读 · 0 评论 -
设计模式(五)——抽象工厂模式
概述 抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an interface for creating families of related or dependent objects without specifying their concrete classes",翻译,“为创建一组相关或相互依赖的对象提供一个借原创 2016-08-24 22:38:24 · 396 阅读 · 0 评论 -
设计模式(六)——责任链模式
使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 类图 类图比较简单 模板 抽象处理者 package ResponseChain; public abstract class Handler { private Handler nextHand原创 2016-08-25 22:13:52 · 483 阅读 · 0 评论