01—简单工厂

描述:封装一基类,都继承基类,当需要实例化不同对象时,可以通过一个工厂类实现。

实例:通过一个计算器小程序来实现。

代码实现如下:

运算基类

    /// <summary>
    /// 运算类
    /// </summary>
    public class Operaction
    {
        private double _numberA = 0;
        private double _numberB = 0;

        public double NumberA
        {
            get { return _numberA; }
            set { _numberA = value; }
        }

        public double NumberB
        {
            get { return _numberB; }
            set { _numberB = value; }
        }

        public virtual double GetResult()
        {
            double result = 0;
            return result;
        }
    }

运算子类,我统一放在OperactionAll.cs中了

    /// <summary>
    /// 加
    /// </summary>
    class OperactionAdd : Operaction
    {
        /// <summary>
        /// 运算方法
        /// </summary>
        /// <returns></returns>
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }
    /// <summary>
    /// 减
    /// </summary>
    class OperactionSub : Operaction
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA - NumberB;
            return result;
        }
    }
    /// <summary>
    /// 乘
    /// </summary>
    class OperactionMul : Operaction
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA * NumberB;
            return result;
        }
    }
    /// <summary>
    /// 除
    /// </summary>
    class OperactionDiv : Operaction
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA / NumberB;
            return result;
        }
    }

工厂类

    /// <summary>
    /// 工厂类
    /// </summary>
    public class OperactionFactory
    {
        //创建实例的方法
        public static Operaction CreateOperaction(string Operacte)
        {
            Operaction oper = null;
            switch (Operacte)
            {
                case "+":
                    oper = new OperactionAdd();
                    break;
                case "-":
                    oper = new OperactionSub();
                    break;
                case "*":
                    oper = new OperactionMul();
                    break;
                case "/":
                    oper = new OperactionDiv();
                    break;

            }
            return oper;
        }
    }

客户端调用

    /// <summary>
    /// 客户端调用
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Operaction oper = null;
            oper = OperactionFactory.CreateOperaction("-"); //通过工厂创建实体
            oper.NumberA = 10;
            oper.NumberB = 5;
            double result = oper.GetResult();//运算方法
            Console.WriteLine(result);
            Console.ReadLine();
        }
    }

完了。代码:点击下载

时间: 2024-10-20 13:32:34

01—简单工厂的相关文章

C++设计模式01——简单工厂模式

http://blog.csdn.net/caoshangpa/article/details/52763923 问题描述 之前在公司做了一个windows 8平台的阅读器.首先,需要将电子书中的内容渲染到屏幕上,而电子书每一页都包含各种各样的内容,比如:图形.图像和文字等等:不同的内容,就是不同的对象:在将不同的内容渲染到屏幕上之前,就需要new操作,建立不同的对象,然后再在屏幕上进行描绘.这个时候,就需要进行很多new操作,new操作分布在代码的不同地方,管理起来很麻烦,而且也很乱,到后期扩

01简单工厂模式SimpleFactory

一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态 工厂方法模式.通过专门定义一个类来负责创建 其他类的实例,被创建的实例通常都具有共同的 父类. 二.模式中包含的角色及其职责 1.工厂(Creator) 角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类可以被外界直接调用,创建所需的产品对象. 2.抽象(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口. 3.具体产品(Concrete Product) 角色简单工厂模式

设计模式之简单工厂和单列的区别

 1.什么是设计模式 * 解析:针对特定问题而提出特定的解决方案 简单工厂不算23种设计模式中的一种,--只是一个抽象工厂   2.什么简单工厂呢?   01.简单工厂的概念 一个普通的类,在该类定义一个方法:该方法是用静态(static)修饰,返回值为父类的类型,通常方法会带一个参数. 02.代码举例 public class PizzaFactory { //定义一个 static 并且返回值类型是 父类类型的方法 携带一个参数 public static Pizza getInstance

01.设计模式_简单工厂模式

转载自  http://www.cnblogs.com/zhili/p/SimpleFactory.html 一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂模式的介绍 说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类, 我们平常编程

简单工厂设计模式(Simple Factory Design Pattern)

[引言]最近在Youtub上面看到一个讲解.net设计模式的视频,其中作者的一个理解让我印象很深刻:所谓的设计模式其实就是运用面向对象编程的思想来解决平时代码中的紧耦合,低扩展的问题.另外一点比较有见解的是,区分了设计模式(Design Pattern),结构模式(Architecture Pattern),架构类型(Architecture Style). 如下图所示 Design Pattern:是基于代码层面的,就是针对解决功能模块之间的问题而采用恰当的设计模式,比如依赖注入,简单工厂,适

网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档

小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心:通过该项目,我们对业务流程有一个整体把控.对继承和多态有深入的了解 下面是类图: 主界面图: 核心思路: 1   1.首先在频道管理类ChannelManager中写一个加载所有频道方法LoadAllChannel; 2   3        该方法作用读取FullChannels.xml文件,并且

Net设计模式实例之简单工厂模式(Simple Factory Pattern)

一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖 二.解决的问题(What To Solve) 客户实例化对象时不需要关心该对象是由哪个子类实例化的. 三.简单工厂模式分析(Analysis) 1.简单工厂模式结构 IProduct接口:抽象产品类 ConcreteProduct类:产品类的具体实现 Simp

两种设计模式(1)==&gt;&gt;“简单工厂”

我们以做一个计算器为例,给大家介绍简单工厂的应用: 效果: 这里我们使用 继承 ,虚方法, 简单工厂的设计模式来完成 首先,我们除了搭好窗体外,我们应该把我们的一些类准备好: 1.计算的父类Calculation using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 计算器_简单工厂_ { //父类(

C#简单工厂模式和单列设计模式潜要解析

简单工厂设计模式,又叫做静态工厂方法(Static Factory Method)模式,就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例. 简单工厂模式是工厂模式家族中最简单实用的模式.简单工厂设计模式是针对于创建类的对象的. 一般,简单工厂涉及到三个 角色/类: 一.工厂类:工厂类是简单工厂的核心,通过工厂类可以分别出的客户需求,在调用其子类. 二.抽象产品类:这个类是由工厂方法模式所创建的对象的父类,一般由接口和抽象类实现. 三.具体产品类:工厂方法模式所创建的任何对象都是这个角色