



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/北大青鸟中关村互联网关系模式简介11种关系模式第一类:通过父类与子类的关系进行实现。第二类:两个类之间。第三类:类的状态。第四类:通过中间类模板方法模式(Template Method)解释一下模板方法模式,北大青鸟中关村软件学院就是指:一个抽象类中,有一个主方法,再定义1.n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图:就是在AbstractCalculator类中定义一个主方法calculate,calculate()调用spilt()等,Plus和Minus分别继承AbstractCalculator类,北大青鸟中关村软件学院通过对AbstractCalculator的调用实现对子类的调用,看下面的例子:javaview plaincopy1. publicabstractclassAbstractCalculator2. 3. /*主方法,实现对本类其它方法的调用*/4. publicfinalintcalculate(Stringexp,Stringopt)5. intarray=split(exp,opt);6. returncalculate(array0,array1);7. 8. 9. /*被子类重写的方法*/10. abstractpublicintcalculate(intnum1,intnum2);11. 12. publicintsplit(Stringexp,Stringopt)13. Stringarray=exp.split(opt);14. intarrayInt=newint2;15. arrayInt0=Integer.parseInt(array0);16. arrayInt1=Integer.parseInt(array1);17. returnarrayInt;18. 19. javaview plaincopy1. publicclassPlusextendsAbstractCalculator2. 3. Override4. publicintcalculate(intnum1,intnum2)5. returnnum1+num2;6. 7. 北大青鸟中关村软件学院测试类:javaview plaincopy1. publicclassStrategyTest2. 3. publicstaticvoidmain(Stringargs)4. Stringexp=8+8;5. AbstractCalculatorcal=newPlus();6. intresult=cal.calculate(exp,+);7. System.out.println(result);8. 9. 北大青鸟中关村软件学院跟踪下这个小程序的执行过程:首先将exp和+做参数,调用AbstractCalculator类里的calculate(String,String)方法,在calculate(String,String)里调用同类的split(),之后再调用calculate(int ,int)方法,从这个方法进入到子类中,执行完return num1 + num2后,将值返回到AbstractCalculator类,赋给result,打印出来。正好验证了我们开头的思路。策略模式(strategy)策略模式定义了一系列算法,并将每个算法封装起来,北大青鸟中关村软件学院使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下:图中ICalculator提供同意的方法,AbstractCalculator是辅助类,提供辅助方法,接下来,依次实现下每个类:首先统一接口:1. publicinterfaceICalculator2. publicintcalculate(Stringexp);3. 辅助类:1. publicabstractclassAbstractCalculator2. 3. publicintsplit(Stringexp,Stringopt)4. Stringarray=exp.split(opt);5. intarrayInt=newint2;6. arrayInt0=Integer.parseInt(array0);7. arrayInt1=Integer.parseInt(array1);8. returnarrayInt;9. 10. 三个实现类:1. publicclassPlusextendsAbstractCalculatorimplementsICalculator2. 3. Override4. publicintcalculate(Stringexp)5. intarrayInt=split(exp,+);6. returnarrayInt0+arrayInt1;7. 8. 1. publicclassMinusextendsAbstractCalculatorimplementsICalculator2. 3. Override4. publicintcalculate(Stringexp)5. intarrayInt=split(exp,-);6. returnarrayInt0-arrayInt1;7. 8. 9. 1. publicclassMultiplyextendsAbstractCalculatorimplementsICalculator2. 3. Override4. publicintcalculate(Stringexp)5. intarrayInt=split(exp,*);6. returnarrayInt0*arrayInt1;7. 8. 简单的测试类:1. publicclassStrategyTest2. 3. publicstaticvoidmain(Stringargs)4. Stringexp=2+8;5. ICalculatorcal=newPlus();6. intresult=cal.calculat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020建筑方案设计答案(3篇)
- 2025年垃圾填埋气发电技术创新与环保产业融合发展报告
- 2025年学历类自考专业(小学教育)小学班主任-小学班主任参考题库含答案解析(5套)
- 医院电子病历系统2025年升级方案:优化与临床决策支持报告
- 2025年学历类自考专业(学前教育)学前教育政策与法规-幼儿园课程参考题库含答案解析(5套)
- 2025年学历类自考专业(学前教育)学前教育学-幼儿园教育基础参考题库含答案解析(5套)
- 2025年学历类自考专业(学前教育)学前教育史-幼儿园教育活动设计与组织参考题库含答案解析(5套)
- 智能化康复医疗器械2025年市场需求与产品创新解决方案研究报告
- 1 古诗二首 教学设计-2024-2025学年语文二年级下册统编版
- 2025年学历类自考专业(学前教育)学前儿童游戏指导-幼儿园组织与管理参考题库含答案解析(5套)
- 2025年企业劳动者雇佣合同样本
- 安徽省高一英语必修一单词表
- 企业级实验设备的投资回报分析方法
- DB37T 5133-2019 预制双面叠合混凝土剪力墙结构技术规程
- 老年上消化道出血急诊诊疗专家共识(2024版)解读
- 顺产产后护理查房
- 《糖尿病饮食教育》课件
- 承包村里集体建设用地协议范文
- 胸腰椎骨折的康复治疗
- 第五讲铸牢中华民族共同体意识-2024年形势与政策
- 软件系统技术报告模板
评论
0/150
提交评论