简单工厂模式详解大数据

面对对象 封装,继承,多态可以完全让你的代码生动起来。今天了解的简单工厂模式,就会用到三大特性;

简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程。

比如实现一个计算功能的案列来说明工厂模式;

//1.1实现一个抽象产品类

abstract class Operator{ 
	protected double a=0; 
	protected double b=0; 
	 
	public double getA() { 
		return a; 
	} 
 
	public void setA(double a) { 
		this.a = a; 
	} 
 
	public double getB() { 
		return b; 
	} 
 
	public void setB(double b) { 
		this.b = b; 
	} 
 
	public double getResult(){ 
		int result = 0; 
		return result; 
		 
	} 
}

// 1.2 写出具体产品类如实现加法和减法的类

class OperationAdd extends Operator{ 
 
	@Override 
	public double getResult() { 
		double result =0; 
		result=a+b; 
		return result; 
	} 
	 
} 
//减法 
class OperationSub extends Operator{ 
	@Override 
	public double getResult() { 
		double result =0; 
		result=a-b; 
		return result; 
	} 
}

// 1.3 实现工厂类,生产对象

  

class OperationFactory{ 
	public static Operator createOperate(String type){ 
		Operator operator =null; 
		switch (type) { 
		case "+": 
			operator = new OperationAdd(); 
			break; 
		case "-": 
			operator = new OperationSub(); 
			break; 
		default: 
			break; 
		} 
		return operator; 
		 
	} 
}

// 1.4 客户端调用工厂类生产对象

public class ModelT { 
	public static void main(String[] args) { 
		System.out.println("计算器功能"); 
		//设计一个输入数字为10,第二个数字为5; 
		Operator op = OperationFactory.createOperate("+"); 
		op.a=10; 
		op.b=5; 
		Double result = op.getResult(); 
		System.out.println(result); 
	} 
}

简单工厂模式的优缺点分析: 

       优点:工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构的优化。

      缺点:由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连;而且由于简单工厂模式的产品室基于一个共同的抽象类或者接口,这样一来,但产品的种类增加的时候,即有不同的产品接口或者抽象类的时候,工厂类就需要判断何时创建何种种类的产品,这就和创建何种种类产品的产品相互混淆在了一起,违背了单一职责,导致系统丧失灵活性和可维护性。而且更重要的是,简单工厂模式违背了“开放封闭原则”,就是违背了“系统对扩展开放,对修改关闭”的原则,因为当我新增加一个产品的时候必须修改工厂类,相应的工厂类就需要重新编译一遍。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/9410.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论