- 1、本文档共120页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第一个版本程序(函数版) static int Hour =0;//钟点 static bool WorkFinished =false;//任务完成标记 //写程序方法 public static void WriteProgram() { if(Hour12){Console.WriteLine(当前时间:{0}点 上午工作,精神百倍,Hour);} else if(Hour13){Console.WriteLine(当前时间:{0}点 饿了,午饭;犯困,午休, Hour);} else if(Hour17){Console.WriteLine(当前时间:{0}点 下午状态还不错,继续努力, Hour);} else { if(WorkFinished){Console.WriteLine(当前时间:{0}点 下班回家了,Hour);} else{ if(Hour21){Console.WriteLine(当前时间:{0}点 加班哦,疲惫之极,Hour);} else{Console.WriteLine(当前时间:{0}点 不行了,睡着了,Hour);} } } } * static void Main(string[] args){ Hour = 9; WriteProgram(); Hour = 10; WriteProgram(); Hour = 12; WriteProgram(); Hour = 14; WriteProgram(); Hour = 17; WorkFinished =true;//任务完成就可以下班了 //WorkFinished = false; WriteProgram(); Hour = 19; WriteProgram(); Hour = 22; WriteProgram(); } * 面向过程的代码, 不是面向对象的代码 第二版程序(分类版) public class Work{ private int hour; public int Hour{ get{return hour;} set{hour = vaule;} } private bool TaskFinished =false; public bool TaskFinished{ get{return finish;} set{finish = value;} } public void WriteProgam() {……} * 形成工作类,将“钟点”,“任务完成”看成类的属性,“写程序”看成类的方法。 * public void WriteProgram() { if(Hour12){Console.WriteLine(当前时间:{0}点 上午工作,精神百倍,Hour);} else if(Hour13){Console.WriteLine(当前时间:{0}点 饿了,午饭;犯困,午休,Hour);} else if(Hour17){Console.WriteLine(当前时间:{0}点 下午状态还不错,继续努力,Hour);} else { if(WorkFinished){Console.WriteLine(当前时间:{0}点 下班回家了,Hour);} else{ if(Hour21){Console.WriteLine(当前时间:{0}点 加班哦,疲惫之极,Hour);} else{Console.WriteLine(当前时间:{0}点 不行了,睡着了,Hour);} } } } 这段代码的问题是什么?-------方法过长 这个方法有很多的判断分支,意味着它的责任过大,无论任何状态都需要它改变。 面向对象设计其实希望做到代码的责任分解。这个类违背了“单一职责原则” 如何去改呢? -------状态模式 第三版(State)状态模式版 * //抽象状态 public abstract class State{ public abstract void WriteProgram(Work w);} //上午工作状态 public class ForenoonState : S
您可能关注的文档
最近下载
- 2024译林版三年级英语上册期末专项训练:句子排序.pdf VIP
- 2022-2023学年济南市市中区九年级上学期期末化学试卷(含答案解析).docx
- 2023-2024学年福建省厦门市思明区莲花中学七年级(上)期末数学试卷及答案解析.pdf
- 家庭情况调查表【范本模板】.pdf VIP
- 北师大版(2024新版)七年级上册生物期末模拟练习试卷(含答案解析).docx
- 稠油油藏水平井堵水调剖技术研究应用.ppt
- 1_清稿1-质量管理体系认证规则(征求意见稿)V1.1.doc
- 财政数据迁移方案.docx
- 全员专项学习培训试题题库单选、多选试题附答案.doc
- 2025年蛇年总结PPT模板.pptx VIP
文档评论(0)