设计模式
文章平均质量分 62
恒奇恒毅
Javaer
展开
-
设计模式之桥接模式
模式定义: 桥接模式使得软件系统能轻松地沿多个维度变化,而又不引入额外的复杂度。使抽象化和实现化 解耦,两者可以独立地变化。遵循原则: 使用聚合关联,不使用继承关联; 抽象和实现解耦;适用场合: (1)不希望抽象和实现之间有一个固定的绑定关系; (2)类的抽象和实现都可以通过子类的方原创 2015-12-10 13:14:41 · 294 阅读 · 0 评论 -
设计模式之蝇量模式
模式定义: 该模式以共享的方式高效地支持大量的细粒度对象。通过复用内存中已经存在的对象, 降低系统创建对象的性能消耗。遵循原则: 共享细粒度对象,降低内存消耗; 分开变化和不变部分。适用场合: (1)当系统中某对象类型的实例比较多的时候; (2)在系统设计时,对象实例进行分类后,发现原创 2015-12-10 13:23:09 · 336 阅读 · 0 评论 -
设计模式之代理模式
静态代理public interface IRedWine { public void product(); public void sell();}public class RedWineFactory implements IRedWine { @Override public void product() { Sy原创 2015-12-10 13:28:18 · 223 阅读 · 0 评论 -
设计模式之门面模式
模式定义: 为子系统中的一组接口提供一个统一的高层接口,使子系统更容易使用。该模式通过外观接口与子系统 交互,而不与具体的子系统中的细节交互。【分层结构、MVC、WEB应用中的三层结构】遵循原则: 迪米特原则--最少知识原则,你不需要知道的你就不要知道,你知道干什么?; 封装变化部分。适用场合: (1原创 2015-12-10 13:29:28 · 318 阅读 · 0 评论 -
设计模式之组合模式
模式定义: 将对象组合成树形结构以表示“部分和整体”的层次结构,使用户对单个对象和组合对象的使用具备一致性。 模糊了简单和复杂,使客户在处理的时候不用区分。可以优化处理递归和分级结构,典型的目录结构。遵循原则: 面向抽象编程; 统一对待单个和组合对象。适用场合: (1)想表现部分与整体的层次结构的时候原创 2015-12-10 13:32:42 · 207 阅读 · 0 评论 -
设计模式之责任链模式
模式定义: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家 的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影 响客户端的情况下动态地重新组织和分配责任。责任链可能是一条直线、一个原创 2015-12-10 13:37:01 · 236 阅读 · 0 评论 -
设计模式之命令模式
模式定义: 将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。 用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。 分离变化与不变的因素。遵循原则: 开闭原则; 最少知识原则;适用场合: (1)使用命令模式作为"CallBack"在面原创 2015-12-10 13:42:43 · 285 阅读 · 0 评论 -
设计模式之中介模式
模式定义: 用一个中介对象来封装一系列对象之间的交互,使各个对象中不需要显式地 引用其他对象实例,从而降低对象之间的耦合度,并且可以独立地改变对象 之间的交互关系。中介拥有各个对象的引用,对象与对象通信通过中介的转达。遵循原则: 集中控制,提高类的复用性; 将一对多的复杂关系转换成一对一的简单关系。使原创 2015-12-10 13:53:28 · 300 阅读 · 0 评论 -
微信公众号开发(二):利用责任链和模板方法模式设计消息的处理流程
由于微信服务器发送过来的消息分为文本消息、事件消息、图片消息、声音消息、链接消息、位置消息,处理不同的消息需要不同的处理方式,但是基本流程差不多,所以我设计了一个处理链,不同的消息由不同的消息处理器来处理,达到可扩展性和维护性的利好。设计一个处理消息的接口MessageHandler/** * 处理消息的抽象接口,责任链模式 * @author xsy * */pu原创 2016-01-12 08:08:13 · 1583 阅读 · 0 评论 -
微信公众号开发(三):消息处理器(大的责任链)
前面处理方法中MessageUtil.parseXml代码如下,解析来自微信服务器的消息XML格式(Dom4J),这个消息是用户发送来的。MessageUtil.messageToXml代码如下,由消息生成XML(XStream),是公众号服务器发送给微信服务器然后发送给用户的消息。这两种消息的格式详见微信开发者文档。 /*** 消息工具类** @author 熊诗言原创 2016-01-12 08:09:31 · 1655 阅读 · 0 评论 -
Java动态代理与Cglib库
JDK动态代理 代理模式是常用的Java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类转载 2016-06-15 17:11:49 · 395 阅读 · 0 评论 -
Android-Related Blogs
百度资深Android工程师任玉刚的博客转载 2015-12-24 08:55:47 · 366 阅读 · 0 评论 -
设计模式:转载Head First设计模式读书笔记
设计模式读书笔记转载 2015-12-22 08:21:28 · 319 阅读 · 0 评论 -
设计模式之装饰者模式
模式定义: 在不改变原来类文件和使用继承的情况下,动态扩展一些功能。通过一个包装对象来包裹真实的对象。 注意点:(1)装饰对象和真实对象具备相同的接口。客户可以像与真实对象的交互一样来与包装对象交互。 (2)装饰对象包含一个真实对象的引用。 (3)包装对象接收来自客户的请求,并将之转发给真实对象。 (4)包装原创 2015-12-10 13:18:27 · 247 阅读 · 0 评论 -
设计模式之适配器模式
模式定义: 结构型模式 将一个类的接口转换成客户所期望的接口,从而使原本因为接口不匹配 而不能一同工作的两个类能一起工作。又称转换器模式、变压器模式、 包装器模式。存在两种适配器模式: (1)对象适配器模式:在这种适配器模式中,适配器容纳一个它包装的类 的实例,适配器调用被包裹对象的物理原创 2015-12-10 13:10:09 · 184 阅读 · 0 评论 -
设计模式之原型模式
原型模式定义: 用原型对象指定创建对象的种类,并且通过复制这个对象创建新的对象。【深浅复制】,避免new浪费大量资源。适用场合: (1)产生对象比较复杂,初始化需要很多资源的时候; (2)希望框架原型和产生对象分开的时候; (3)同一个对象可能会供其他调用者同时调用的时候。public class DayLife原创 2015-12-10 13:07:44 · 230 阅读 · 0 评论 -
设计模式之解释器模式
模式定义: 给定一个语言的文法,即规则,并且定义一个解释器用来解释语言中的句子。该模式描述了 在怎么样给定一个简单的文法之后,使用该模式来解释这些句子。在解释器模式中定义了一 个代表语言文法命令的类层次结构,在这个结构中可以存在任何的组合规则,每一个具体的 解释器都有相同的解释操作,然而,每个解释器都以不同的方式实现公共的解释原创 2015-12-10 13:45:21 · 212 阅读 · 0 评论 -
设计模式之迭代器模式
模式定义: 该模式提供一种顺序访问集合中的元素的方法,而不用暴露集合内部细节。 迭代器需要访问到每一个元素,必然保存有集合的一个引用,需要通过构造 器或者setter方法传入,需要在集合的iterator方法中进行。遵循原则: 开闭原则; 单一职责原则。使用场合: (1) 支持以不同原创 2015-12-10 13:49:03 · 248 阅读 · 0 评论 -
设计模式之备忘录模式
/** * 备忘录 * @author 熊诗言 * */public class Memento { private int blood; private int sword; public Memento(int blood, int sword) { this.blood = blood; thi原创 2015-12-10 13:56:59 · 240 阅读 · 0 评论 -
设计模式之观察者模式
public interface IObserver { public void update(IObserverable observerable);}public class PersonObserver implements IObserver { @Override public void update(IObserverable observer原创 2015-12-10 13:59:12 · 225 阅读 · 0 评论 -
设计模式之状态模式
public class Context { public final static int PREVIEW_MODE = 0; public final static int EDIT_MODE = 1; private IState currentState; public void changeState(IState state) {原创 2015-12-10 14:01:49 · 296 阅读 · 0 评论 -
设计模式之策略模式
public interface IStrategy { public double realPrice(double consumePrice);}public class PromotionalStrategy implements IStrategy { @Override public double realPrice(double consu原创 2015-12-10 14:04:45 · 252 阅读 · 0 评论 -
设计模式之模板方法模式
ClassLoader就是模板方法模式,我的微信公众号也使用了模板方法模式算法框架已经搭建好,你只需要实现你不一样的东西就可以了。public abstract class AbstractPeople { private void getUp(){ System.out.println("起床了"); } protected abstr原创 2015-12-10 14:06:42 · 306 阅读 · 0 评论 -
设计模式之访问者模式
public abstract class Emp { protected String no; protected String name; protected String position; protected float salary; private int length = 0; public Emp(原创 2015-12-10 14:09:47 · 290 阅读 · 0 评论 -
设计模式之工厂方法模式
模式定义: 定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象。将实际创建实例对象 的工作延迟到子类当中,核心工厂类不再负责具体产品的创建。 工厂方法模式是对简单工厂模式的抽象。好处是可以使系统在不修改工厂角色的情况下引进新 的产品。遵循原则: 开闭原则 依赖倒置适用场合: (1)当子类型可能很多,以后需要添原创 2015-12-10 11:24:45 · 359 阅读 · 1 评论 -
设计模式之创建模式
模式定义: 创建复杂产品交给具体的工厂,指导者角色总的入口。遵循原则: 分步骤创建复杂的对象; 构建和表示相分离; 单一职责原则。适用场合: (1)当产品内部具有比较复杂的内部结构的时候; (2)当复杂产品需要与表现相分离,可能需要不同的表现时; (3)当需要向客户原创 2015-12-10 12:58:23 · 281 阅读 · 0 评论 -
设计模式之单例、多例模式
单例设计模式只提供一个全局对象饿汉式public class NormalSingleton { private static NormalSingleton s = new NormalSingleton(); private NormalSingleton(){} public static NormalSingleton getInstance(){原创 2015-12-10 13:02:54 · 371 阅读 · 0 评论 -
设计模式之抽象工厂模式
对于产品族提供一个抽象工厂,具体的工厂提供具体的产品族食物的接口public interface IFood { public void printMessage();}抽象食物public abstract class AbstractBaseFood { protected String kind; protected int num;原创 2015-12-10 12:46:37 · 328 阅读 · 1 评论 -
一些好的博客转载
小平果的欢乐谷http://blog.csdn.net/i10630226?viewmode=contentsRestarting JAVAhttp://blog.csdn.net/u013256816翡青的博客http://blog.csdn.net/zjf280441589Switch的博客http://blog.csdn.net/q547550831丁转载 2016-01-08 10:38:24 · 1299 阅读 · 1 评论