设计模式再次认识多态
Posted 王思琪^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式再次认识多态相关的知识,希望对你有一定的参考价值。
目录
什么是多态?
不同类的对象对同一消息作出不同的响应
比如:上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好一样。
多态的作用
简单讲就是解耦,在详细点讲就是,多态是设计模式的基础,不能说所有的设计模式都使用到了多态,但是23种中的很大一部分,都是基于多态的。
多态的好处
1.可替换性
2.可扩充性
3.接口性
4.灵活性
5.简化性
举例
结合设计模式,第9页第10页第11页的代码,通过这样的实例,深刻理解面向对象的多态
Operation-运算类
public 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;
public virtual double GetResult()
double result = 0;
return result;
OperationAdd-加法类
class OperationAdd:Operation
public override double GetResult()
double result = 0;
result = NumberA + NumberB;
return result;
OperationSub-减法类
class OperationAdd:Operation
public override double GetResult()
double result = 0;
result = NumberA + NumberB;
return result;
OperationMul-乘法类
class OperationMul:Operation
public override double GetResult()
double result = 0;
result = NumberA + NumberB;
return result;
OperationDiv-除法类
class OperationDiv:Operation
public override double GetResult()
double result = 0;
if (NumberB==0)
throw new Exception("除数不能为0.");
result = NumberA + NumberB;
return result;
OperationFactory-简单运算工厂类
class OperationFactory
public static Operation createOperate(string operate)
Operation oper=null;
switch (operate)
case "+":
oper = new OperationAdd();
break;
case "-":
oper=new OperationSub();
break;
case "*":
oper=new OperationMul();
break;
case "/":
oper=new OperationDiv();
break;
return oper;
客户端代码
Operation oper;
oper = OperationFactory.createOperate("+");
oper.NumberA = 1;
oper.NumberB = 2;
double result = oper.GetResult();
Console.WriteLine(result);
以上是关于设计模式再次认识多态的主要内容,如果未能解决你的问题,请参考以下文章