
DesignPattern
文章平均质量分 58
suxi123
这个作者很懒,什么都没留下…
展开
-
设计模式之工厂
简单工厂:简单工厂利用静态方法返回一个类具体对象,因此也叫静态工厂模式。工厂:工厂方法一般造一种产品。抽象工厂:抽象工厂造许多个系列产品,系列之内的产品互相之间有依赖。 工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现“开闭原则”,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。工厂方法模式的对简单工厂模式进行了抽象。有一...原创 2011-07-01 23:02:23 · 91 阅读 · 0 评论 -
设计模式之备忘录(memento)
public class Memento { public static void main(String[] args){ AnOriginator ao = new AnOriginator(); ao.setA("5"); ao.setB("c"); AMemento am = ao.getAMemento(); ao.setA("3"); ao...原创 2011-07-14 22:08:22 · 94 阅读 · 0 评论 -
设计模式之访问(visitor)
public class VisitorDemo { public static void main(String[] args) { Collection c = new ArrayList(); c.add(new StringElement("string1")); c.add(new StringElement("string2")); c.add(new...原创 2011-07-14 22:04:58 · 130 阅读 · 0 评论 -
设计模式之命令(command)
public class CommandPattern { abstract class Command{ Receiver receiver; public Command(Receiver receiver){ this.receiver = receiver; } protected abstract void execute(); }...原创 2011-07-06 20:37:50 · 110 阅读 · 0 评论 -
设计模式之职责链(ChainOfResponsible)
public class ChainOfResponsible { //请求 class Request{ private String content; public String getContent() { return content; } public void setContent(String content) { thi...原创 2011-07-05 19:45:51 · 115 阅读 · 0 评论 -
设计模式之装饰(decorator)
//与composite一样都采用递归组合实现public class Decorator { // 抽象父类 abstract class Ingredient { public abstract void getDescription(); } // 面包 class Bread extends Ingredient { String desc;...原创 2011-07-05 19:43:56 · 87 阅读 · 0 评论 -
设计模式之外观(facade)
public class Facade { class Engine{ public void run(){ System.out.println("engine is run..."); } public void stop(){ System.out.println("engine is stop..."); } } class W...原创 2011-07-05 19:42:30 · 93 阅读 · 0 评论 -
设计模式之享元(flyweight)
public class Flyweight { class FlyweightFactory { Hashtable<String, FlyWeight> pool = new Hashtable<String, FlyWeight>(); public void addFlyWeight(String key, FlyWeight valu...原创 2011-07-05 19:40:36 · 279 阅读 · 0 评论 -
设计模式之代理(proxy)
public class Proxy { interface Subject { void print(); } class RealSubject implements Subject { public void print() { System.out.println("subject..."); } } //JDK的动态代理 ...原创 2011-07-05 19:38:09 · 350 阅读 · 0 评论 -
设计模式之组合(composite)
将对象组合成树形结构以表示“部分与整体”的层次结构。 public class CompositePattern { abstract class Component{ abstract void add(Component c); abstract void remove(Component c); abstract void display(); }...原创 2011-07-04 19:55:33 · 97 阅读 · 0 评论 -
设计模式之桥(bridge)
将抽象部分与它的实现部分分离,使之都可以独立的变化。 AbstractLogImpl 与 AbstractLog即构成日志与平台之间的桥梁,实现日志与平台的多种组合。public class Bridge { // 日志 abstract class AbstractLog { protected AbstractLogImpl abstractLogImpl; ...原创 2011-07-04 19:52:02 · 103 阅读 · 0 评论 -
设计模式之适配器(adapter)
将一个类的接口转换为客户希望的另外一个接口。包括类适配器和对象适配器。 //类适配器public class ClassAdapter { interface Target{ public abstract void targetMethod(); } class Adaptee{ public void adapteeMethod(){ Sys...原创 2011-07-04 19:43:58 · 88 阅读 · 0 评论 -
设计模式之生成器(builder)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许构造对象有不同的表示时。 工厂模式:构造一个产品 抽象工厂:构造一系列产品 生成器:构造一个复杂的产品 public class Builder { class BenZCar{ } ...原创 2011-07-04 19:37:19 · 103 阅读 · 0 评论 -
设计模式之原型(prototype)
public class Prototype implements Serializable{ private static final long serialVersionUID = -463279279341581931L; //浅复制 class BaseClass implements Cloneable{ private String str;...原创 2011-07-04 19:22:18 · 88 阅读 · 0 评论 -
设计模式之模板(template)
public class Templates { public static void main(String[] args){ AbstractTemplates at = new ConcreteTemplates(); at.print(); }} abstract class AbstractTemplates{ //由具体类实现 ,子类可以改...原创 2011-07-14 22:09:54 · 83 阅读 · 0 评论