简单工厂模式-Java篇

简单工厂模式就是考虑如何实例化对象的问题,就是说到底要实例化谁,将来会不会增加实例化对象,比如计算器类中增加开根元素,应该考虑用一个单独的类来创造实例的过程,这就是工厂。下面将利用计算器类举例,解释简单工厂模式:

1.运算符类:

 1 package com.lujie;
 2
 3 public class Operation {
 4     private double _numberA=0;
 5     private double _numberB=0;
 6
 7     public void set_numberA(double _numberA) {
 8         this._numberA = _numberA;
 9     }
10     public void set_numberB(double _numberB) {
11         this._numberB = _numberB;
12     }
13     public double get_numberA() {
14         return _numberA;
15     }
16     public double get_numberB() {
17         return _numberB;
18     }
19     public  double getResult()  {
20         double result=0;
21         return result;
22     }
23 }

2.利用继承和多态实现代码松耦合:

  2.1加法类继承自运算符类:

 1 package com.lujie;
 2
 3 public class OperationAdd extends Operation{
 4
 5     public double getResult() {
 6         double result =0;
 7         result=this.get_numberA()+this.get_numberB();
 8         return result;
 9
10     }
11 }

  2.2减法类继承自运算符类:

 1 package com.lujie;
 2
 3 public class OperationSub extends Operation{
 4
 5     public double getResult() {
 6         double result =0;
 7         result=this.get_numberA()-this.get_numberB();
 8         return result;
 9
10     }
11 }

  2.3乘法类继承自运算符类:

 1 package com.lujie;
 2
 3 public class OperationMul extends Operation{
 4
 5     public double getResult()  {
 6         double result =0;
 7         if(this.get_numberB()==0)
 8         result=this.get_numberA()*this.get_numberB();
 9         return result;
10
11     }
12 }

  2.4除法类继承自运算符类:

 1 package com.lujie;
 2
 3 public class OperationDiv extends Operation{
 4
 5     public double getResult()  {
 6         double result =0;
 7         try {
 8
 9             result=this.get_numberA()/this.get_numberB();
10
11         } catch (Exception e) {
12             System.out.println("除数不能为0!");
13         }
14
15         return result;
16     }
17 }

3.简单的运算工厂类:

 1 class OperationFactory{
 2     public static Operation createOperate(String operate) {
 3
 4         Operation oper=null;
 5         switch (operate) {
 6         case "+":
 7             oper=new OperationAdd();
 8             break;
 9         case "-":
10             oper=new OperationSub();
11             break;
12         case "*":
13             oper=new OperationMul();
14             break;
15         case "/":
16             oper=new OperationDiv();
17             break;
18         }
19
20         return oper;
21     }
22 }

4.工厂模式举例:

1 public static void main(String[] args)  {
2
3         Operation oper;
4         oper=OperationFactory.createOperate("/");
5         oper.set_numberA(1);
6         oper.set_numberB(0);
7         double result=oper.getResult();
8         System.out.println("结果为:"+result);
9 }
时间: 2024-10-11 04:17:06

简单工厂模式-Java篇的相关文章

大话设计模式_简单工厂模式(Java代码)

简单的描述:一个父类.多个子类,实例化那个子类由一个单独的工厂类来进行 图片摘自大话设计模式: 运算类: 1 package com.longsheng.simpleFactory; 2 3 public class Calculate { 4 5 private double firstNum; 6 private double secondNum; 7 8 public double getFirstNum() { 9 return firstNum; 10 } 11 12 public v

简单工厂模式 Java实现

将类的创建任务委托给工厂,包含具体创建哪个类的信息作为参数(通常为String)提交给简单工厂 优缺点: 1. 工厂模式含有必要的判断逻辑,可以决定在什么时候创建哪一个产品的实例,客户端可以免除直接创建产品的责任,而仅仅需要消费产品.简单工厂通过这种做法实现了责任的分割. 缺点: 1.系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,违反了设计模式中针对扩展开放,对修改关闭的原则. 2. 简单工厂模式通常使用静态工厂方法,这使得子类无法继承. 模式图 代码: 简单工厂模式 Java实现

设计模式-简单工厂模式[JAVA版]

2016年苹果春季发布会发布了一款迄今最高性能的4英寸iPhone,那么问题来了,苹果公司的代工厂到底生产多少种尺寸的手机呢? 下面就让简单工厂告诉我们答案吧. 由工厂决定生产哪种型号的的手机,苹果公司的工厂就是一个工厂类,是简单工厂模式的核心类. iPhone5.iPhone5S.iphone6都是苹果手机,只是型号不同.苹果手机类满足抽象的定义,各个型号的手机类是其具体实现. 简单工厂模式的UML如下: 简单工厂模式的实现 首先创建一个"苹果手机"类,定义一个获取手机尺寸的方法 /

Java中的简单工厂模式

举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的头

!!转!!java 简单工厂模式

举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的头

Java中的简单工厂模式(转)

Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象

JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 "过程",不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题:你如何能轻松方便地构造对象实例,而不必关心构造对象实

Java模式—简单工厂模式

简单工厂模式:是由一个工厂对象决定创建出哪一种产品类的实例,简单工厂模式是工厂模式家族中最简单实用的模式. 目的:为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 它的组成: 1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑.在java中它往往由一个具体类实现. 2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口.在java中由接口或者抽象类来实现. 3) 具体产品角色:工厂类所创建的对象就是此角色的实例.在java中由一个具体类实现

java语言实现创建型模式——简单工厂模式

一.描述 简单工厂模式又名静态工厂方法模式,是所有工厂模式中最简单的一个,它定义一个具体的工厂类来负责创建所有类的对象并初始化创建的对象,它主要由3部分组成:工厂类.抽象类.实现抽象类的具体类,然后通过客户端调用工厂类创建相应的对象. 注意:简单工厂模式不属于GoF总结的23种设计模式,它是相当于初学java的HelloWorld案例,帮助初学者了解设计模式,增长信心的一个设计模式. 二.简单工厂模式的优缺点 优点:相对于直接在客户端创建对象并初始化对象的值来说,简单工厂模式将创建对象和初始化任