1.工厂模式介绍
1.1定义:定义一个创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到子类。
工厂方法的通用类图
在工厂模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义,Creator为抽象类的创建类,也就是抽象工厂,具体如何创建类是由具体的实现工厂ConcreteCreator完成的。
1.2工厂方法模式的有点
良好的封装性,代码结构清晰
扩展性非常好,在增加产品类的情况下,只要适当的修改一个具体工厂类或者扩展一个工厂类,就可以“拥有变化”。
屏蔽产品类。产品类如何变化,调用者无需关心,它只需关心产品的接口,只要接口保持不变,系统的上层模块就不需要发生变化。
解耦框架。高层模块只需要关心产品的抽象类,其他实现类都不用关心。
1.3工厂方法模式的使用场景
2.简单工厂模式的实现
2.1简单工厂模式(静态工厂模式)
以实现一个计算器为例:
整个过程设计三个对象:人(Program4表示),计算器(以OperationFactory表示),计算方式(计算方式有多种,加减乘除等,都属于计算方法,以一个父类Operation,加减乘除继承覆写方法即
可)。整个示例类如下:
1 public classProgram4 {2
3 public static voidmain(String[] args) {4 Scanner scanner = newScanner(System.in);5 System.out.println("请输入数字A");6 double numberA =Double.parseDouble(scanner.nextLine());7 System.out.println ("选择运算符(+、-、*、/):");8 String atrithmeticType =scanner.nextLine();9 System.out.println("请输入数字B");10 double numberB =Do