设计模式
文章平均质量分 78
iteye_11997
这个作者很懒,什么都没留下…
展开
-
Adapter
以下是自己学习Adapter模式时的理解interface Usb{ void useUsbDevice();}class PC{ Usb usb1; Usb usb2;}interface PS2{ void usePS2Device();}class PS2Mouse implements PS2{ void usePS...2008-07-13 17:38:32 · 70 阅读 · 0 评论 -
代理 与 子类化
最近看一个斯坦福的视频, 里面的Cocoa框架大量使用了代理模式,定制类的行为, 学生就发问了,为什么不采用子类化的策略呢, 老师就说了 子类化 和 代理都是起到代码分离的作用。无所谓对错,有人喜欢子类化,有人喜欢代理,这是一个需要综合考虑的设计决策 自己写点东西记一下 package delegate.subclass;public class UI...2010-12-02 16:11:37 · 58 阅读 · 0 评论 -
bridge 桥接模式
假想需求 有白人 黑人 有说英语的白人 有说汉语的白人 有说汉语的黑人 有说英语的黑人 按照一般的方法 子类 父类 可以造出4个子类来 这还是2*2的组合 假如分支多了就是N*N了 解决 桥接模式 分出其中一种稳定的类型分支用继承体系来区分 另一种行为分支用接口封装行为(策略模式?) 接下来看代码 抽象人 ...原创 2010-02-04 16:42:52 · 97 阅读 · 0 评论 -
享元模式 flyweight
Ext.get()与Ext.fly()之区别从一开始接触Ext就看到有Ext.fly这个函数,当时觉得这个跟Ext.get没什么区别,加之当时对JS性能相关问题认识肤浅,也一直没有在意其区别,今日看learning extjs一书,看到了有专门对Ext.fly特别强调的一处:This isn't exactly a speed tip, but is more about conser...原创 2010-02-04 10:00:20 · 84 阅读 · 0 评论 -
动态代理 java
代理工具类/** * created on Jan 13, 2010 9:34:18 AM * * Copyright 2001-2010 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not us...原创 2010-01-13 10:15:37 · 67 阅读 · 0 评论 -
Decorator 装饰器 模式 java基础类库上的列子
这个列子是关于汉堡包要和什么材料搭配 汉堡包核心是面包 但中间夹得材料可以是各种食物 即装饰面包以不同的材料 Ingredient 装饰器和被装饰着都要继承的类 也可定义为接口 package decoratorPatternSample;public abstract class Ingredient { public a...原创 2010-01-09 14:25:42 · 155 阅读 · 0 评论 -
策略模式 状态模式
当设计一个对象可能在不同情况下有不同的行为时,一般使用的是父类 子类 多态重载的方法,Person a=new WhitePerson();Person b=new BlackPerson();a.speak();// i'm whiteb.speak();// i'm black但这样做不好的地方在于 假如对象创建后了之后想在运行时改变对象的行为是不可能的,(当然可以用if ...原创 2010-01-04 09:55:09 · 83 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是线程的本地变量,可以防止线程安全问题, 因为它隔离了相关的资源(它只是一种手段, 我们可以采用同步机制解决线程安全问题),并在同一个线程中可以共享这个资源 public class ConnectionManager { private static ThreadLocal connectionHolder = new Thr...2009-12-11 17:05:08 · 107 阅读 · 0 评论 -
代理模式
静态代理 接口 public interface UserManager { public void addUser(String username, String password); public void modifyUser(int userId, String username, String password); ...2009-12-11 16:58:47 · 88 阅读 · 0 评论 -
单例 延迟
public class Single { private int id; private Single(){ System.out.println("init....."); } private static class FooHolder { static final Single foo = new Single(); ...原创 2009-11-24 15:22:36 · 102 阅读 · 0 评论 -
设计模式 笔记
http://www.evernote.com/shard/s20/sh/00636c49-8060-4011-9b00-cef4bda3f972/63e24fe9c16f237615d88db2a7f1fb8e复用 继承 白箱复用组合 黑箱复用针对接口编程,而不是针对实现编程优先使用组合,而不是继承应该间接的创建对象不能方便的对类进行...2012-09-19 16:45:47 · 79 阅读 · 0 评论