`

设计模式之factory

阅读更多
(封装)Encapsulation Delegation(分派)

Factory 将创建实例的工作分离

1.FactoryMethod



2. AbstractFactory
public abstract class Factory{
  public abstract Sample creator();
  public abstract Sample2 creator(String name);
}

public class SimpleFactory extends Factory{
  public Sample creator(){
    return new SampleA
  }
  public Sample2 creator(String name){
    return new Sample2A
  }
}

public class BombFactory extends Factory{
  public Sample creator(){
    return new SampleB
  }
  public Sample2 creator(String name){
    return new Sample2B
  }
}

public abstract class ForumFactory {

private static Object initLock = new Object();
private static String className = "com.jivesoftware.forum.database.DbForumFactory";
private static ForumFactory factory = null;

public static ForumFactory getInstance(Authorization authorization) {
if (authorization == null) {
return null;
}
//以下使用了Singleton 单态模式
if (factory == null) {
synchronized (initLock) {
if (factory == null) {
try {
Class c = Class.forName(className);
factory = (ForumFactory) c.newInstance();
} catch (Exception e) {
return null;
}
}
}
}
//Now, 返回 proxy.用来限制授权对forum的访问
return new ForumFactoryProxy(authorization, factory, factory.getPermissions(authorization));
}

//真正创建forum的方法由继承forumfactory的子类去完成.
public abstract Forum createForum(String name, String description) throws UnauthorizedException, ForumAlreadyExistsException;
}
分享到:
评论

相关推荐

    设计模式之Factory

    设计模式之Factory

    java设计模式之Factory[文].pdf

    java设计模式之Factory[文].pdf

    java设计模式之Factory借鉴.pdf

    java设计模式之Factory借鉴.pdf

    java设计模式之Factory参照.pdf

    java设计模式之Factory参照.pdf

    java设计模式之Factory文.pdf

    java设计模式之Factory文.pdf

    c#面向对象设计模式之factory method

    张建中 c#面向对象设计模式之abstract method视频教程

    JAVA设计模式chm文档

    设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计...

    factory设计模式源码

    c++设计模式之factory设计模式

    设计模式文档 chm

    设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计...

    GoF 23种设计模式的详解与应用

    创建模式:设计模式之Factory,设计模式之Prototype(原型),设计模式之Builder,设计模式之Singleton(单态). 结构模式:设计模式之Facade(外观),设计模式之Proxy(代理),设计模式之Adapter(适配器),设计模式之Composite...

    二十三种设计模式【PDF版】

    设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这...

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    各个设计模式的介绍Factory ,Builder

    各个设计模式的介绍,非常不错 Java与设计模式 设计模式之Factory -工厂模式设计模式之FACTORY METHOD -工厂模式設計模式之Builder -建造模式

    JAVA设计模式23种

    设计模式之Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new一样频繁. 设计模式之Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder模式就是将这两 种...

    设计模式整理(很全)

    创建模式 设计模式之Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 设计模式之Factory(工厂方法和抽象工厂) 使用工厂模式就象使用new一样频繁....

    JAVA与设计模式PPT版本(通俗易懂)

    设计模式之Factory -工厂模式 客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。 缺点是当产品修改时,工厂类也要做相应的修改。 追MM少不了请吃饭了,麦当劳...

    C++的设计模式之工厂方法模式(Factory Method)

    C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)

    设计模式(Patterns in Java)

    设计模式(Patterns in Java) ...设计模式之Factory(工厂方法和抽象工厂) 使用工厂模式就象使用new 一样频繁. 设计模式之Prototype(原型) 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的 对象。

    Java设计模式之工厂模式(Factory).doc

    Java设计模式之工厂模式(Factory).doc

Global site tag (gtag.js) - Google Analytics