设计模式
meigesir
share life and tech
展开
-
设计模式:观察者模式(Observer Patterns)
观察者模式:定义了对象间一对多的依赖,这样一来,当一个对象的状态改变时, 它的所有依赖都会自动收到通知并自动更新。 开发步骤:两种方法(这里我们假设自己是一个气象站,为移动设备提供天气数据)一、使用自己的观察者模式1>新建一个主题接口Subject和一个观察者接口Observer <1>主题接口:新建三个方法,Subject.java packag...原创 2012-04-26 19:17:44 · 65 阅读 · 0 评论 -
设计模式:装饰者模式(Decorator Pattern)
装饰者模式定义:动态地将责任附加到对象上,如要扩展功能,装饰者提供了比继承更有弹性的替代方案。在java的io中用的比较多这里我们以蛋糕为例:一、我们新建一个Cake接口 package com.kaishengit.decorator;public interface Cake { public float cost();} 二、新建一个蛋糕类(实...原创 2012-04-27 22:47:35 · 87 阅读 · 0 评论 -
设计模式:单例模式(Singleton)
单例模式(Singleton):单例模式确保一个类只有一个实例,并提供一个全局访问点。两种方式:一、饿汉式 package com.kaishengit;public class Singleton { //私有构造方法 private Singleton(){} //提供私有的静态变量 private static Singleton singleton ...2012-04-27 23:13:13 · 58 阅读 · 0 评论 -
设计模式:工厂模式(Factory Pattern)
一、工厂模式之简单工厂模式Simple Factory Pattern工厂模式,Spring用的比较多1>我们新建一个Dao接口 package com.kaishengit.factory.simple;public interface Dao { public void save();} 接下来我们新建两个实现类:1.MySqlDao.j...2012-04-28 11:49:39 · 80 阅读 · 0 评论 -
设计模式:命令模式(command Pattern)
命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。 我们使用遥控器的例子来说明一下命令模式1>新建一个Command(命令)接口 package com.kaishengit.command;public interface Command { //命令对象方法 public void execute();}...2012-04-29 18:16:49 · 72 阅读 · 0 评论 -
设计模式:适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern): 适配器模式将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。 现实生活中有很多适配器的例子,例如:各种电源、各种USB连接线... 这里我们使用狼变成羊的例子,也就是披着羊皮的狼,其中的羊皮就是适配器,要不狼混不到羊群 实践步骤:1>我们新建一个通用接口(Shee...2012-04-30 08:54:11 · 91 阅读 · 0 评论 -
设计模式:外观模式(Facade Pattern)
外观模式外观模式又叫门面模式,提供一个统一的接口,来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 这里我们使用观看电影的实例,我们假设观看一部影片(watchMovie())的步骤:1.投影开2.幕布放下3.DVD播放4.音响打开;结束放映(closed())的操作应该是反过来的 实践步骤:1>我们新建一个投影机(Diascope)...2012-04-30 09:24:02 · 123 阅读 · 0 评论 -
设计模式:模版模式(Template Pattern)
模版模式又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定义算法中的某些步骤。 我们使用冲泡咖啡和冲泡茶的例子加工流程:咖啡冲泡法:1.把水煮沸、2.用沸水冲泡咖啡、3.把咖啡倒进杯子、4.加糖和牛奶茶冲泡法: 1.把水煮沸、2.用沸水冲泡茶叶、3.把 茶 倒进杯子、4.加蜂蜜 ...2012-05-01 20:44:00 · 130 阅读 · 0 评论 -
设计模式:代理模式(Proxy Pattern)
代理模式代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个 客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间 起到中介的作用。 代理模式一般涉及到三个角色1>抽象角色:声明真实对象和代理对象的共同接口;2>代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相...2012-05-01 20:46:23 · 53 阅读 · 0 评论