Java 工厂模式:减少if语句,优化代码结构
一个常见的例子是根据来源系统的不同,采用工厂模式来实现编程,从而减少if语句的使用。\n\n假设我们有两个来源系统,分别是系统A和系统B。每个系统都有不同的实现逻辑。我们可以通过工厂模式来根据来源系统的不同创建不同的实例,并执行相应的逻辑。\n\n首先,定义一个接口或抽象类来表示来源系统的行为:\n\njava\npublic interface SourceSystem {\n void doSomething();\n}\n\n\n然后,创建两个具体的实现类,分别代表系统A和系统B:\n\njava\npublic class SystemA implements SourceSystem {\n @Override\n public void doSomething() {\n // 系统A的实现逻辑\n }\n}\n\npublic class SystemB implements SourceSystem {\n @Override\n public void doSomething() {\n // 系统B的实现逻辑\n }\n}\n\n\n接下来,创建一个工厂类来根据来源系统的不同创建相应的实例:\n\njava\npublic class SourceSystemFactory {\n public static SourceSystem createSourceSystem(String source) {\n if (source.equals("A")) {\n return new SystemA();\n } else if (source.equals("B")) {\n return new SystemB();\n } else {\n throw new IllegalArgumentException("Invalid source system: " + source);\n }\n }\n}\n\n\n最后,我们可以通过使用工厂类来创建相应的实例,并执行相应的逻辑,而不需要使用if语句来判断来源系统:\n\njava\npublic class Main {\n public static void main(String[] args) {\n String source = "A"; // 假设来源系统是系统A\n SourceSystem sourceSystem = SourceSystemFactory.createSourceSystem(source);\n sourceSystem.doSomething();\n }\n}\n\n\n通过使用工厂模式,我们可以根据来源系统的不同创建相应的实例,从而避免了使用if语句来判断来源系统,使得代码更加清晰和可维护。
原文地址: https://www.cveoy.top/t/topic/pL2K 著作权归作者所有。请勿转载和采集!