设计模式
action5362603
这个作者很懒,什么都没留下…
展开
-
建造者模式
//做菜所需要的步骤 [code="java"]public interface Cai { public void fangyan(); //放盐 public void fangyou(); //放油 public void jiashui(); //加水,,,等等是做菜不可缺少的步骤 ....... } [/code] //有具体叫张...原创 2014-06-21 11:11:28 · 67 阅读 · 0 评论 -
责任链模式
[code="java"]public interface Handler { public void operator(); }[/code] [code="java"]public abstract class AbstractHandler { private Handler handler; public Handler getHandler() { return ...原创 2014-06-23 10:11:42 · 85 阅读 · 0 评论 -
命令模式
[code="java"]public interface Command { public void exe(); }[/code] [code="java"]public class MyCommand implements Command { private Receiver receiver; public MyCommand(Receiver receiver)...原创 2014-06-23 10:11:47 · 101 阅读 · 0 评论 -
享元模式
在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常量池中的,JAVA会确保一个字符串常量在常量池中只有一个拷贝。String a="abc",其中"abc"就是一个字符串常量。 public class Test { public static void main(String[] arg...原创 2014-06-24 09:50:38 · 54 阅读 · 0 评论 -
组合模式
[code="java"]public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vector(); public TreeNode(String name){ this.name = name; } public Strin...原创 2014-06-24 09:50:39 · 71 阅读 · 0 评论 -
策略模式
public interface IStrategy { //每个锦囊妙计都是一个可执行的算法。 public void operate(); } public class BackDoor implements IStrategy { @Override public void operate() { System.out.println("找乔国老帮忙,...原创 2014-06-24 09:50:46 · 73 阅读 · 0 评论 -
桥接模式
[code="java"]public interface Sourceable { public void method(); }[/code] [code="java"]public class SourceSub1 implements Sourceable { @Override public void method() { System.out.println("t...原创 2014-06-25 09:44:13 · 80 阅读 · 0 评论 -
外观模式
[code="java"]public class CPU { public void startup(){ System.out.println("cpu startup!"); } public void shutdown(){ System.out.println("cpu shutdown!"); } }[/code] [code="java"]publ...原创 2014-06-25 09:44:19 · 72 阅读 · 0 评论 -
代理模式
[code="java"]public interface Sourceable { public void method(); }[/code] [code="java"]public class Source implements Sourceable { @Override public void method() { System.out.println("the o...原创 2014-06-25 09:44:25 · 70 阅读 · 0 评论 -
经典软件设计模型 - 事件驱动模型
模型说明 在UI编程中,常常要对鼠标点击进行相应,首先如何获得鼠标点击呢?方式一:创建一个线程,该线程一直循环检测是否有鼠标点击,那么这个方式有以下几个缺点:1. CPU资源浪费,可能鼠标点击的频率非常小,但是扫描线程还是会一直循环检测,这会造成很多的CPU资源浪费;如果扫描鼠标点击的接口是阻塞的呢?2. 如果是堵塞的,又会出现下面这样的问题,如果我们不但要扫描鼠标点击,还要扫描键盘是否按下,...原创 2016-04-16 11:23:53 · 306 阅读 · 0 评论 -
迭代子模式
[code="java"]public interface Collection { public Iterator iterator(); /*取得集合元素*/ public Object get(int i); /*取得集合大小*/ public int size(); }[/code] [code="java"]public interface Iterator...原创 2014-06-23 10:11:38 · 84 阅读 · 0 评论 -
观察者模式
[code="java"]public interface Observer { public void update(); }[/code] [code="java"]public class Observer1 implements Observer { @Override public void update() { System.out.println("observ...原创 2014-06-23 10:11:33 · 75 阅读 · 0 评论 -
原型模式
[code="java"]public abstract class AbstractMonkey implements Cloneable { // 本类相当于在孙悟空内部,他自造自己的一个地方 public Object clone() { Object o = null; try { o = super.clone(); } catch (CloneNo...原创 2014-06-21 11:11:34 · 86 阅读 · 0 评论 -
适配器模式
[code="java"]public class Source { public void method1() { System.out.println("this is original method!"); } }[/code] [code="java"]public interface Targetable { /* 与原类中的方法相同 */ public voi...原创 2014-06-21 11:11:36 · 71 阅读 · 0 评论 -
装饰模式
Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下: [code="java"]public interface Sourceable { public void method(); }[/code] [code="java"]public class Source implements Sourceable { @Ove...原创 2014-06-21 11:11:40 · 66 阅读 · 0 评论 -
解释器模式
[code="java"]public interface Expression { public int interpret(Context context); }[/code] [code="java"]public class Plus implements Expression { @Override public int interpret(Context conte...原创 2014-06-22 13:55:44 · 71 阅读 · 0 评论 -
中介者模式
[code="java"]public interface Mediator { public void createMediator(); public void workAll(); }[/code] [code="java"]public class MyMediator implements Mediator { private User user1; privat...原创 2014-06-22 13:55:49 · 68 阅读 · 0 评论 -
访问者模式
[code="java"]public interface Visitor { public void visit(Subject sub); }[/code] [code="java"]public class MyVisitor implements Visitor { @Override public void visit(Subject sub) { System...原创 2014-06-22 13:55:54 · 81 阅读 · 0 评论 -
状态模式
[code="java"]public class State { private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } public void me...原创 2014-06-22 13:55:59 · 82 阅读 · 0 评论 -
备忘录模式
[code="java"]public class Original { private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } public Original(Strin...原创 2014-06-22 13:56:03 · 78 阅读 · 0 评论 -
模板方法模式
[code="java"]public abstract class AbstractCalculator { /*主方法,实现对本类其它方法的调用*/ public final int calculate(String exp,String opt){ int array[] = split(exp,opt); return calculate(array[0],array...原创 2014-06-23 10:11:29 · 72 阅读 · 0 评论 -
经典软件设计模型 - 插件模型
介绍 什么是插件方法,就是将某些模块以插件的方式添加到现有系统中来完成某个具体功能,由于这个具体功能可以由很多不同的模块完成,而每次一般只需要其中一个模块,所以必须可以动态更换模块。这在linux驱动程序中使用很多,如摄像头驱动有一个总的模块接口v4l2,而根据不同的摄像头需要动态注册不同的驱动程序,这些驱动程序就类似插件。在处理这种问题时,很多人可能想到C++的类继承,设置抽象基类定义接口,...原创 2016-04-16 11:27:06 · 147 阅读 · 0 评论