【软考学习】设计模式——工厂方法
2017-11-05 21:56
393 查看
【背景】
设计模式是非常重要的一块知识,每个设计模式都值得深入了解和学习。
【内容】
工厂方法设计模式总结:
一、定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类。
二、UML结构图:
三、代码实现:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 工厂方法_计算器
{
class Operation
{
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; }
}
/// <summary>
/// 得到运算结果
/// </summary>
/// <returns></returns>
public virtual double GetResult()
{
double result = 0;
return result;
}
}
/// <summary>
/// 加法类
/// </summary>
class OperationAdd: Operation
{
public override double GetResult()
{
double result=0;
result =NumberA+NumberB;
return result ;
}
}
/// <summary>
/// 减法类
/// </summary>
class OperationSub:Operation
{
public override double GetResult()
{
double result=0;
result =NumberA-NumberB;
return result;
}
}
/// <summary>
/// 乘法类
/// </summary>
class OperationMul:Operation
{
public override double GetResult()
{
double result =0;
result =NumberA *NumberB;
return result;
}
}
/// <summary>
/// 除法类
/// </summary>
class OperationDiv:Operation
{
public override double GetResult()
{
double result=0;
result =NumberA /NumberB;
return result;
}
}
/// <summary>
/// 工厂方法
/// </summary>
interface IFactory
{
Operation CreateOperation();
}
/// <summary>
/// 专门负责生产“+”的工厂
/// </summary>
class AddFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationAdd();
}
}
/// <summary>
/// 专门负责生产“-”的工厂
/// </summary>
class SubFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationSub();
}
}
/// <summary>
/// 专门负责生产“*”的工厂
/// </summary>
class MulFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationMul();
}
}
/// <summary>
/// 专门负责生产“/”的工厂
/// </summary>
class DivFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationDiv();
}
}
}
设计模式是非常重要的一块知识,每个设计模式都值得深入了解和学习。
【内容】
工厂方法设计模式总结:
一、定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类。
二、UML结构图:
三、代码实现:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 工厂方法_计算器
{
class Operation
{
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; }
}
/// <summary>
/// 得到运算结果
/// </summary>
/// <returns></returns>
public virtual double GetResult()
{
double result = 0;
return result;
}
}
/// <summary>
/// 加法类
/// </summary>
class OperationAdd: Operation
{
public override double GetResult()
{
double result=0;
result =NumberA+NumberB;
return result ;
}
}
/// <summary>
/// 减法类
/// </summary>
class OperationSub:Operation
{
public override double GetResult()
{
double result=0;
result =NumberA-NumberB;
return result;
}
}
/// <summary>
/// 乘法类
/// </summary>
class OperationMul:Operation
{
public override double GetResult()
{
double result =0;
result =NumberA *NumberB;
return result;
}
}
/// <summary>
/// 除法类
/// </summary>
class OperationDiv:Operation
{
public override double GetResult()
{
double result=0;
result =NumberA /NumberB;
return result;
}
}
/// <summary>
/// 工厂方法
/// </summary>
interface IFactory
{
Operation CreateOperation();
}
/// <summary>
/// 专门负责生产“+”的工厂
/// </summary>
class AddFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationAdd();
}
}
/// <summary>
/// 专门负责生产“-”的工厂
/// </summary>
class SubFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationSub();
}
}
/// <summary>
/// 专门负责生产“*”的工厂
/// </summary>
class MulFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationMul();
}
}
/// <summary>
/// 专门负责生产“/”的工厂
/// </summary>
class DivFactory : IFactory
{
public Operation CreateOperation()
{
return new OperationDiv();
}
}
}
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 工厂方法_计算器 { class Program { static void Main(string[] args) { IFactory operFactory = new AddFactory(); Operation oper = operFactory.CreateOperation(); oper.NumberA = 1; oper.NumberB = 2; double result = oper.GetResult(); Console.WriteLine(result); Console.Read(); } } }
相关文章推荐
- 设计模式学习笔记-工厂方法
- Java设计模式之工厂方法模式——学习笔记
- 设计模式 学习之工厂方法模式
- 设计模式学习笔记三:工厂方法模式
- 从FLC中学习的设计模式系列-创建型模式(3)-工厂方法
- 设计模式学习-Factory Method(工厂方法)
- 学习设计模式:简单工厂、模板方法、单例(下)
- 学习设计模式:工厂方法——简单工厂只是我的另一相
- IOS设计模式学习(4)工厂方法
- 设计模式学习笔记四:工厂方法(Factory Method)
- 设计模式学习笔记三:工厂方法模式
- 设计模式学习笔记——工厂方法(Factory Method)
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- 设计模式学习之 Factory method (工厂方法)
- 设计模式学习(二)工厂方法
- 设计模式学习笔记:factory method(工厂方法)
- JAVA学习--接口的应用:工厂方法的设计模式
- JAVA设计模式学习之----创建模式:工厂模式(工厂方法)
- 设计模式学习笔记(3)工厂方法
- 设计模式学习-每日一记(3.工厂方法)