
模式-设计模式
海尼尔
海浪、泥土、鱼饵
展开
-
策略模式
n个妙计,一个锦囊。妙计接口 public interface IStrategy{ public void operate(); }具体妙计实现类 public class Strategy1 implements IStrategy{ @Override public void operate(){转载 2015-08-14 19:53:18 · 502 阅读 · 0 评论 -
单例模式
三个要素1、私有的构造方法2、指向自身的静态实例引用3、公有的静态的获取自身实例方法饿汉式public class Singleton{ private static Singleton singleton = new Singleton(); private Singleton(){}; public stati转载 2015-08-14 19:47:07 · 442 阅读 · 0 评论 -
装饰模式(Decorator)
当我们要为一个对象添加新的方法时,我们一般有两种方式:继承机制 通过继承一个现有类使得子类也拥有父类的方法,然后在子类中扩展新方法。关联机制 将一个类的对象实例化后嵌入到新的对象中,由新对象来决定是否调用嵌入的对象的方法来扩展自己的行为。这个被嵌入的对象被称为装饰器(Decorator)。装饰模式又称为包装器(Wrapper):对客户透明的方式动态的给一个对象附加上更多的责任。“对转载 2015-08-15 14:56:36 · 559 阅读 · 0 评论 -
观察者模式(Observer)
观察者模式又称为发布订阅模式。一个发布者对应多个订阅者,一旦发布者的状态发生改变时,订阅者将收到订阅事件。本文中涉及的代码请点击这里。先看看一个生活中的例子:当我们想订一份报纸,我们先去邮局找到报纸的编号后填写订阅单并缴费。当报社有新报纸发出时,邮局会将我们订阅的报纸发给我们。为了简单我们去掉邮局环节简化成:报社有新报纸后马上通知用户,这就是观察者。定义对象间的一对转载 2015-08-15 08:01:00 · 992 阅读 · 0 评论 -
门面模式(外观Facade模式)
外观模式UML图外观模式UML定义外观模式(也成为门面模式)要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。它提供一个高层次的接口,使得子系统更易于使用类型:结构型模式使用场景在真实的应用系统中,一个子系统可能由很多类组成。子系统的客户为了它们的需要,需要和子系统中的一些类进行交互。客户和子系统的类进转载 2015-08-16 08:05:15 · 539 阅读 · 0 评论 -
中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。增加一個中介者對象後,所有的相關對象都通過中介者對象來通信,而不是互相引用。當一個對象發生改變時,只需要通知中介者對象即可。要點中介者模式使網狀的多對多關係變成了相對簡單的一對多關係。實現中介者對象的方式:在中介者對象中開放一些接收消息的转载 2015-08-17 11:04:54 · 647 阅读 · 0 评论 -
职责链模式(Chain of Responsibility)
什么是职责链先看个场景:某公司请假制度为:请假1天,需小组长批准请假超过1天小于等于3天,需项目经理批准请假超过3天小于等于7天,需人事部门批准普通做法的伪代码为:if(请假天数 <= 1){ askForLeave(小组长);}ele if(请假天数 1){ askForLeave(项目经理);}else if(请假天数 3){ as转载 2015-08-14 22:32:44 · 544 阅读 · 0 评论 -
工厂模式
这次主要介绍的是三种与工厂有关的模式:简单工厂模式、工厂方法模式、抽象工厂模式。课件与源码点击这里。不用工厂模式这次我们以宝马车的生产来举例。当用户想要一辆宝马时,如果不用工厂,那么用户得自己先创造才能用:车制造类:public class BMW320 { public BMW320() { System.out.println("制造-->BMW转载 2015-08-14 23:19:40 · 607 阅读 · 0 评论