Factory

Posted sleepydot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Factory相关的知识,希望对你有一定的参考价值。

简单工厂模式

严格来讲简单工厂模式不是一种设计模式。

public IProduct producing(String type) 
{   
    switch(type)
    {
       case "A1" : return new ProductA1();
       case "A2" : return new ProductA2();
       default: return null;
    }
}

 

工厂方法模式

定义一个用于创建对象的接口,让子类决定实现哪一个类。工厂方法使一个类的实例化延迟到其子类。

public interface IFactory
{
    IProduct producing(String type);
}
public class FactoryA implements IFactory {
    @Override
    public IProduct producing(String type)
    {
        switch(type)
        {
            case "A1" : return new ProductA1();
            case "A2" : return new ProductA2();
            default: return null;
        }
    }

}

 

抽象工厂模式

提供一个创建一系列相关或者相互依赖对象的接口,而无需指定他们的具体实现。当产品只有一个的时候抽象工厂就退化成了工厂方法模式;当工厂方法模式的产品有多个的时候其就进化成了抽象工厂模式。

public interface IFactory
{
    IProduct producingA(String type);
    IProduct producingB(String type);
}

 

以上是关于Factory的主要内容,如果未能解决你的问题,请参考以下文章

Bean后置处理器 - BeanPostProcessor#postProcessAfterInitialization

Hibernate的HQL多表查询

boost::factory 和 std::function

Factory Pattern用于实例化Factory类中的类

创建型 — 工厂方法模式(Factory Method)

简单工厂模式(simple-factory-model)