创建型模式 (Creational Pattern)

1. 简单工厂模式 (Simple Factory)

  • 又称为静态工厂方法(Static Factory Method)模式

  • 根据参数的不同返回不同类的实例

  • 被创建的实例通常都具有共同的父类

  • 实际应用:

public final static DateFormat getDateInstance();
public final static DateFormat getDateInstance(int style);
public final static DateFormat getDateInstance(int style, Locale locale);

KeyGenerator keyGen = KeyGenerator.getInstance("DESede");

Cipher cp = Cipher.getInstance("DESede");
1
2
3
4
5
6
7

2. 工厂方法模式 (Factory Method)

  • 又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式

  • 与简单工厂模式的区别,是将工厂类抽象出接口,不同的情况,使用不同的工厂实例类

  • 实际应用:

Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=DB;user=sa;password=");
Statement statement=conn.createStatement();
ResultSet rs=statement.executeQuery("select * from UserInfo");
1
2
3

3. 抽象工厂模式 (Abstract Factory)

  • 抽象工厂模式与工厂方法模式最大的区别在于,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构,一个工厂等级结构可以负责多个不同产品等级结构中的产品对象的创建 。当一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象时,抽象工厂模式比工厂方法模式更为简单、有效率。

4. 建造者模式 (Builder)

5. 原型模式 (Prototype)

6. 单例模式 (Singleton)

  • 某个类只能有一个实例

  • 它必须自行创建这个实例

  • 它必须自行向整个系统提供这个实例。

  • 举例

public class SingletonOfEagerMode {

    //1. Private the default constructure method
    private SingletonOfEagerMode(){
    }

    //2.Create the only instance and init it.
    private static SingletonOfEagerMode instance = new SingletonOfEagerMode();

    //3. Supply the getInstance() method for public.
    public static SingletonOfEagerMode getInstance(){
        return instance;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
最近更新: 8/11/2019, 3:37:25 PM