设计模式-行为模式
来源:互联网 发布:防身器材 淘宝 编辑:程序博客网 时间:2024/06/10 22:57
职责链模式 Chain of Responbility
示例代码
namespace ChainOfResponsibility{ public class PurchaseRequest { private double amount; public double Amount { get { return amount; } set { amount = value; } } private string purpose; public string Purpose { get { return purpose; } set { purpose = value; } } public PurchaseRequest(double amount, string purpose) { this.amount = amount; this.purpose = purpose; } }}namespace ChainOfResponsibility{ class ManagerPPower : PurchasePower { private const double ALLOWABLE = 20 * BASE; public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < ALLOWABLE) { Console.WriteLine("Manager will approve $" + request.Amount); } else if (successor != null) { successor.ProcessRequest(request); } } }}namespace ChainOfResponsibility{ class ManagerPPower : PurchasePower { private const double ALLOWABLE = 20 * BASE; public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < ALLOWABLE) { Console.WriteLine("Manager will approve $" + request.Amount); } else if (successor != null) { successor.ProcessRequest(request); } } }}namespace ChainOfResponsibility{ public abstract class PurchasePower { protected const double BASE = 500; protected PurchasePower successor; public void SetSuccessor(PurchasePower successor) { this.successor = successor; } public abstract void ProcessRequest(PurchaseRequest request); }}namespace ChainOfResponsibility{ class ManagerPPower : PurchasePower { private const double ALLOWABLE = 20 * BASE; public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < ALLOWABLE) { Console.WriteLine("Manager will approve $" + request.Amount); } else if (successor != null) { successor.ProcessRequest(request); } } }}namespace ChainOfResponsibility{ public class DirectorPPower : PurchasePower { private const double ALLOWABLE = 20 * BASE; public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < ALLOWABLE) { Console.WriteLine("Director will approve $" + request.Amount); } else if (successor != null) { successor.ProcessRequest(request); } } }}namespace ChainOfResponsibility{ public class PresidentPPower : PurchasePower { private const double ALLOWABLE = 60 * BASE; public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < ALLOWABLE) { Console.WriteLine("President will approve $" + request.Amount); } else { Console.WriteLine("Your request for $" + request.Amount + " needs a board meeting!"); } } }}namespace ChainOfResponsibility{ public class VicePresidentPPower : PurchasePower { private const double ALLOWABLE = 40 * BASE; public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < ALLOWABLE) { Console.WriteLine("Vice President will approve $" + request.Amount); } else if (successor != null) { successor.ProcessRequest(request); } } }}namespace ChainOfResponsibility{ class Program { static void Main(string[] args) { ManagerPPower manager = new ManagerPPower(); DirectorPPower director = new DirectorPPower(); VicePresidentPPower vp = new VicePresidentPPower(); PresidentPPower president = new PresidentPPower(); manager.SetSuccessor(director); director.SetSuccessor(vp); vp.SetSuccessor(president); try { while (true) { Console.WriteLine("Enter the amount to check who should approve your expenditure."); Console.Write(">"); double d = Double.Parse(Console.ReadLine()); manager.ProcessRequest(new PurchaseRequest(d, "General")); } } catch (Exception e) { Environment.Exit(1); } } }}
迭代器模式 Iterator
0 0
- 行为模式设计模式
- 设计模式-----行为模式
- 设计模式:行为模式
- 设计模式-行为模式
- 设计模式-行为模式
- 设计模式-行为模式
- 设计模式-行为型模式
- 设计模式之行为模式
- c++ 设计模式---行为模式
- 设计模式之行为模式
- 设计模式总结-行为模式
- [设计模式]--行为型模式
- 设计模式—行为模式
- 设计模式总结-行为模式
- 设计模式:行为型模式
- 设计模式三-行为模式
- 设计模式之行为模式
- 设计模式--行为型模式
- 加载网络图片
- NYOJ:题目113 字符串替换
- Spark - 导入JSON、Text文件为Dataframe 做SQL查询
- IntelliJ IDEA设置系列(三):类和方法的快捷方式
- 2015年腾讯移动应用质量大数据报告
- 设计模式-行为模式
- 接口和抽象类的区别是什么
- Eclipse中maven项目没法自动编译、编译失败、WEB-INF/classes目录中没有Class文件
- 理解webservice SOAP WSDL
- Android 实现 session 保持
- Java连接数据库(学习笔记啦!)【整理网上的材料】
- sdau-2 1003
- Python与自然语言处理(二)基于Gensim的Word2Vec
- Servlet