Design Pattern——Factory_DP
namespace TEST
{
//用于生成一个对应的操作类,这个工厂只是用来产生操作类的,不做其他只用
public class Factory
{
public Operate GetOpetration(string mark)
{
switch(mark)
{
case "+":
return new OperateAdd();
break;
case "-":
return new OperateSub();
break;
case "*":
return new OperateMultiply();
break;
case "/":
return new OperateDivision();
break;
default:
return null;
break;
}
}
}
//这个类是用来执行相关的操作的
public abstract class Operate
{
public double operateTwo { get; set; }
public double operateOne { get; set; }
public abstract string Opetration();
}
public class OperateAdd:Operate
{
public override string Opetration()
{
return Convert.ToString(base.operateOne + base.operateTwo);
}
}
public class OperateSub : Operate
{
public override string Opetration()
{
return Convert.ToString(this.operateOne - this.operateTwo);
}
}
public class OperateMultiply : Operate
{
public override string Opetration()
{
return Convert.ToString(this.operateOne*this.operateTwo);
}
}
public class OperateDivision : Operate
{
public override string Opetration()
{
if (this.operateTwo != )
return Convert.ToString(this.operateOne / this.operateTwo);
else
return "input error";
}
}
class Program
{
static void Main(string[] args)
{
try
{
double num1=Convert.ToDouble( Console.ReadLine());
double num2 =Convert.ToDouble( Console.ReadLine());
string op = Convert.ToString(Console.ReadLine());
var factory = new Factory();
var Opetration = factory.GetOpetration(op);
Opetration.operateOne = num1;
Opetration.operateTwo = num2;
Console.WriteLine(Opetration.Opetration()); Console.Read(); Console.Read();
}
catch (Exception ex)
{
Console.WriteLine("程序出错");
} }
}
}
Design Pattern——Factory_DP的更多相关文章
- 说说设计模式~大话目录(Design Pattern)
回到占占推荐博客索引 设计模式(Design pattern)与其它知识不同,它没有华丽的外表,没有吸引人的工具去实现,它是一种心法,一种内功,如果你希望在软件开发领域有一种新的突破,一个质的飞越,那 ...
- 设计模式(Design Pattern)系列之.NET专题
最近,不是特别忙,重新翻了下设计模式,特地在此记录一下.会不定期更新本系列专题文章. 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用 ...
- [转]Design Pattern Interview Questions - Part 4
Bridge Pattern, Composite Pattern, Decorator Pattern, Facade Pattern, COR Pattern, Proxy Pattern, te ...
- [转]Design Pattern Interview Questions - Part 2
Interpeter , Iterator , Mediator , Memento and Observer design patterns. (I) what is Interpreter pat ...
- [转]Design Pattern Interview Questions - Part 3
State, Stratergy, Visitor Adapter and fly weight design pattern from interview perspective. (I) Can ...
- [转]Design Pattern Interview Questions - Part 1
Factory, Abstract factory, prototype pattern (B) What are design patterns? (A) Can you explain facto ...
- design pattern
1. visitor design pattern http://butunclebob.com/ArticleS.UncleBob.IuseVisitor
- Design Pattern: Observer Pattern
1. Brief 一直对Observer Pattern和Pub/Sub Pattern有所混淆,下面打算通过这两篇Blog来梳理这两种模式.若有纰漏请大家指正. 2. Use Case 首先我们来面 ...
- Scalaz(10)- Monad:就是一种函数式编程模式-a design pattern
Monad typeclass不是一种类型,而是一种程序设计模式(design pattern),是泛函编程中最重要的编程概念,因而很多行内人把FP又称为Monadic Programming.这其中 ...
随机推荐
- 如何实现自己的ClassLoader
摘自深入分析java web技术内幕
- ruby操作mongo DB
web自动化中,对操作日志功能进行验证(操作日志存在mongoDB中). 为了避免前面操作产生的日志影响结果校验,我们需要先清除之前的所有操作日志. require 'mongo' host = '1 ...
- Flexible 弹性盒子模型之CSS align-items 属性
实例 居中对齐弹性盒的各项 <div> 元素: div { display: flex; align-items:center; } 复制 效果预览 浏览器支持 表格中的数字表示支持该属性 ...
- 浅谈JAVA中字符串常量的储存位置
在讲述这些之前我们需要一些预备知识: java中的内存被分成以下部分: 1.栈区:由编译器自动分配释放,具体方法执行结束后,系统自动释放JVM内存资源. 其作用有保存局部变量的值,包括:1.用来保存基 ...
- 构建jenkins
一.Jenkins简介: jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用户监控秩序重复的工作,包括: 1>持续的软件版本发布测试项目. 2>监控外部调 ...
- AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖-转
http://blog.csdn.net/zhangh8627/article/details/51752872 AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖 标签: ...
- Socket编程中 setsockopt的作用
功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项,应该 将层的值 ...
- C# 实现客户端程序自动更新
看到一篇不错的帖子,可能以后会用到,果断收藏 文章来源 博客园jenry(云飞扬)http://www.cnblogs.com/jenry/archive/2006/08/15/477302.html ...
- C#里面Auotpostback回刷时候,textbox里面的password怎么保存
刷新页面时,如何保留页面上的PassWord模式下的TextBox的值? this.txtUserPwd.Attributes["value"] = txtUserPwd.Text ...
- 浙大 pat 1038 题解
1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...