- 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
您可能关注的文档
最近下载
- 高中数学教学课例《等比数列》课程思政核心素养教学设计及总结反思.doc
- 2024年山西省继续教育公需科目题库(含答案).docx VIP
- 众筹建房项目商品房销售合同(2024版).doc
- 口述一次疯狂刺激的交换经历.docx VIP
- 英语趣配音教案1~20篇教案.docx
- 2024年度党务工作者培训试题含答案.doc VIP
- 最新国家开放大学电大《基础写作》期末题库及答案 .pdf
- 《基于运算一致性发展运算素养——“分数除法(一)”教学实践与思考》-来源:小学教学·下半月数学(第2022005期)-河南教育报刊社.pdf VIP
- 基于PLC的压力过程控制系统设计.docx
- 纯电动汽车空调系统故障诊断方法研究.pdf
文档评论(0)