首页 > 其他分享 >设计模式之美--工厂模式之抽象工厂

设计模式之美--工厂模式之抽象工厂

时间:2022-12-13 18:14:00浏览次数:60  
标签:return -- 创建 ISystemConfigParser 工厂 Override 设计模式 public

使用场景:创建的对象分类 规则更加复杂。针对情形设计对象层级。
举例:

  • 针对规则配置解析器
    • json
    • xml
    • yaml
    • properties
  • 针对系统配置解析器
    • json
    • xml
    • yaml
    • properties
      实现说明:让一个工厂负责创建多种不同类型的对象
      demo代码:
public interface IConfigParserFactory {

    IRuleConfigParser createRuleParser();

    ISystemConfigParser createSystemParser();
}

public class JsonConfigParserFactory implements IConfigParserFactory {
    @Override
    public IRuleConfigParser createRuleParser() {
        return new JsonRuleConfigParser();
    }

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

public class XmlConfigParserFactory implements IConfigParserFactory {
    @Override
    public IRuleConfigParser createRuleParser() {
        return new XmlRuleConfigParser();
    }

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

public interface ISystemConfigParser {

    /**
     * 解析文件
     * @param configText
     * @return
     */
    RuleConfig parse(String configText);
}

public class JsonSystemConfigParser implements ISystemConfigParser {
    @Override
    public RuleConfig parse(String configText) {
        return null;
    }
}

public class XmlSystemConfigParser implements ISystemConfigParser {
    @Override
    public RuleConfig parse(String configText) {
        return null;
    }
}

工厂模式总结:针对对象的创建逻辑复杂而可以使用的设计模式;

  • 根据不同的规则去创建不同对象;创建逻辑简单使用简单工厂即可;复杂可以使用工厂方法,将复杂逻辑单独放到各自的工厂中实现;
  • 不需要根据不同的类型创建对象,但是单个对象的创建过程较复杂,也可以考虑使用工厂模式,将对象的创建过程封装到工厂中;

标签:return,--,创建,ISystemConfigParser,工厂,Override,设计模式,public
From: https://www.cnblogs.com/rbwbear/p/16979499.html

相关文章