【简单的工厂模式】一个简单的计算器

对于一个对设计模式一无所知的程序员来说,维护成本,无疑是一个致命的问题,所以从今开始,我要开始努力学习,设计模式,在这里,记录自己的学习成果

生产类

  1. abstract class Oper 抽象类
  2. class Add 加
  3. class Sub 减
  4. class Mul 乘
  5. class Div 除
  6. class Operate 计算
abstract class Oper {
    public $num1 = 0;
    public $num2 = 0;

    abstract public function getResult();

}
class Add extends Oper {

    public function getResult(){
        $result = $this->num1 +$this->num2;
        return $result;
    }
}

class Div extends Oper {

    public function getResult(){
        if($this->num2==0){
            throw_exception(‘分母不能为零‘);
        }
        $result = $this->num1 /$this->num2;
        return $result;
    }

}
class Operate {

    public function oper($operate){
        switch ($operate){
            case ‘+‘:
                return new Add();
                break;
            case ‘-‘:
                return new Sub();
                break;
            case ‘*‘:
                return new Mul();
                break;
            case ‘/‘:
                return new Div();
                break;
            default:
                throw_exception(‘符号不支持‘);
                break;
        }
    }
}
时间: 2024-10-22 13:22:34

【简单的工厂模式】一个简单的计算器的相关文章

简单的工厂模式

从今天开始 每天进步一点点.开始了解并学习设计模式,就从简单的工厂模式开始吧.... 简单工厂模式(Simple Factory):不利于产生系列产品 简单工厂模式又称静态工厂方法模式.重命名上就可以看出这个模式一定很简单.它存在的目的很简单:定义一个用于创建对象的接口. 在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化, 如同一个交通警察站在来往的车辆流中,决定放行那一个方向的车辆向那一个方向流动一样. 先来看看它的组成: 1) 工厂类角色:这是本

对比总结三个工厂模式(简单工厂,工厂方法,抽象工厂)

前言 简单工厂模式,工厂方法模式,抽象工厂模式,这三个模式,当然还有单例模式,建造者模式等等,应该是日常工作中常用的,尤其是工厂模式,应该是最最常见的模式,对理解面向对象有重要的实际意义. 简单工厂模式 最简单,最直接,能满足大部分日常需求,不足是工厂类太简单——无法满足开闭原则,对多个产品的扩展不利 工厂方法模式——交给子类去创建 工厂方法模式,有了进步,把工厂类进行改进,提升为一个抽象类(接口),把对具体产品的实现交给对应的具体的子类去做,解耦多个产品之间的业务逻辑. 前面都是针对一个产品族

C#工厂模式之简单工厂

工厂模式是用工厂方法代替new操作的一种模式.工厂方法封装了多个相关联类的new方法,每次实例化这些类的时候不需要new多次,只需要调用工厂类的对应方法即可实例化这些类,并且是通过使用一个共同的接口来指向新创建的对象. 简单工厂模式是类的创建模式,又叫做静态工厂方法模式.就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例.一般涉及到三种角色. 简单工厂模式优缺点: 模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割.但由于工厂类集中了所有产品创建

关于工厂模式(简单以及抽象)

简单工厂模式: 简单工厂模式可以认为是一个创建实例的过程,可以代替new的方式,创建一个新的实例.创建实例new的时候要多考虑一下,看是否可以使用工厂模式,虽然可能多做一些工作,但是系统可能会有更少程度的修改. 直白的说就是把对象创建的过程封装到一个新的类中去,比如这个类创建的初始化过程比较麻烦,按老方法就是把这些全放在这个类的构造函数中,但是这样显然不利于维护,所以就把这部分内容提取出来放到一个新的类中,这个类的某个create方法可以返回一个所需要的对象的实例. 最明显的就是容器中的使用It

大话设计模式之简单的工厂模式

第一章:代码无错就是优-简单的工厂模式 先建立一个计算类Operation Operation.h文件 @interface Operation : NSObject @property(nonatomic,assign)double numberA; @property(nonatomic,assign)double numberB; @end Operation.m文件 @implementation Operation @end 然后分别创建他们的子类Add,Sub,Mul,Div Add

有关反射和简单工厂模式的简单实现

先抛出两个概念,反射机制和简单工厂模式. 一句话谈谈自己的理解 反射机制就是由参数(包名类名的字符串),获取具体类的属性方法.简单工程模式就是由一个类作公共出口来生成其他类的实例,父类子类生成模式的简单应用,可以由参数来决定具体需要的实例.往下看,是我搜到的解释,相对完善一点. 什么是反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.上

大话设计模式第八章---工厂模式及简单工厂模式比较

(简单工厂模式) (工厂模式) 简单工厂模式: 最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖.不过,违背了开放-封闭原则. 工厂模式: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 工厂模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断转移到了客户端代码来进行.你想要加功能,在简单工厂模式中是改工厂类

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂

简单工厂:工厂依据传进的参数创建相应的产品. http://www.cnblogs.com/DelphiDesignPatterns/archive/2009/07/24/1530536.html {<HeadFirst设计模式>工厂模式之简单工厂 } 3{ 产品类 } 4{ 编译工具 :Delphi7.0 } 5{ 联系方式 :[email protected]com } 6 7unit uProducts; 8 9interface 10 11type 12 TPizza = class(

单例模式和工厂模式的简单理解

//什么是单例模式?//单例模式就是在核心就够中只包含一个被称作单例的特殊的类,通过单例模式可以保证系统中一个类只有一个实例,也就是说一个类只有一个对象实例using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class danli { static void Main(s

Objective-C 工厂模式(上) -- 简单工厂模式

简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 定义解释的文字很单调, 下面举例说明 比如一个手机工厂,  它能生产iPhone, Android, Nokia三种手机. 这家工厂的营运模式为厂家直销, 就是直接卖给用户. 用户如果要买手机就直接给工厂下订单要什么手机