工厂模式

2021-04-12  本文已影响0人  lj72808up

一. 简单工厂与实例工厂

1. 什么时候用简单工厂, 什么时候用实例工厂

二. 抽象工厂

抽象工厂和实例工厂的区别在于, 工厂接口的方法不止有一个,而是有多个. 这种区别主要用来表达, 使用第二个维度划分创建对象的种类. 即用工厂接口的不同方法名划分第二个维度. 实例工厂接口因为只有1个方法, 只能通过工厂的不同区分对象的种类, 只有一个维度上的区分

interface IConfigParserFactory {
    IRuleConfigParser createRuleParser();
    ISystemConfigParser createSystemParser();
//此处可以扩展新的parser类型,⽐如IBizConfigParser
}
class JsonConfigParserFactory implements IConfigParserFactory {
    @Override
    public IRuleConfigParser createRuleParser() {
        return new JsonRuleConfigParser();
    }
    @Override
    public ISystemConfigParser createSystemParser() {
        return new JsonSystemConfigParser();
    }
}
class XmlConfigParserFactory implements IConfigParserFactory {
    @Override
    public IRuleConfigParser createRuleParser() {
        return new XmlRuleConfigParser();
    }

    @Override
    public ISystemConfigParser createSystemParser() {
        return new XmlSystemConfigParser();
    }

    // 省略YamlConfigParserFactory和PropertiesConfigParserFactory代码
}

interface ISystemConfigParser{}

class XmlSystemConfigParser implements ISystemConfigParser{}
class JsonSystemConfigParser implements ISystemConfigParser{}
上一篇 下一篇

猜你喜欢

热点阅读