


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java编程继承的第一原则广州疯狂软件学院ios培训课程由资深研究ios开发教师授课,疯狂软件年终钜惠,报名ios就业班,免费赠送基础班,名额有限,本月火热报名中,欢迎有志之士电话或者QQ咨询。对于【继承】的第一印象就是获得了父的所有方法和属性,所以相对于继承了父的功能和职责。而后面自己的设计也是基于这个原则,就是复用原则,复用父项的方法原则。慢慢的延伸就是有多个子类,就会把几个子类共用的一些方法放到父类里面,而这种设计思想深深的影响了自己很久。而这种方法却在近年来被自己慢慢的推翻,现在使用继承的第一原则就是模板,Template。通过父类使用Template模式,构造出子类的流程,而自己只是在对应的钩子方法(Hook)里面填充着差异的地方,如果不是这种情况,我会尽量的减少继承的使用。对于原来的把子类的方法推到父类的方法里面,则通过其它的方式进行消除掉了。造成这种变化,只是源于一个原则的影响,【一切私有方法都是有罪的】。在编码的时候,大量的把方法推到父类之后,才发现这些方法,别的地方也会需要,而这个时候,就很痛苦,因为通过继承肯定不行,但是不继承,别的地方就需要copy一份,不copy就需要把这个方法变成静态的方法,而这个时候,就会出现很奇怪的关系了。这种问题,我一般都是把这些方法归属到几个其它类中,因为调用super.method(),和调用Other.method()实际上代码是一样的,都没有减少和增加,但是类的职责却清晰了很多。近些年随着IOC的增多,那么Template的使用也自然增多了很多,所以也自然的倾向于父类定义流程,子类实现差异的方式来做,而不是父类提供方法,子类进行组装。两种差异的直观比较,见下面的代码。第一种方式:父类提供大量方法,子类组装1 public class FatherMehod 23 protected void a() 4 / doSomeThing5 67 protected void b() 8 / doSomeThing9 1011 protected void c() 12 / doSomeThing13 1415 1 public class SonSetup extends FatherMehod 2 public void doProcess() 3 a();4 b();5 c();6 7 第二种方法:父类提供流程,子类实现差异(Template)1 public abstract class FatherTemplate 2 public void doProcess() 3 a();4 b();5 c();6 78 protected abstract void a();9 protected abstract void b();10 protected abstract void c();11 1 public class SonDiff extends FatherTemplate23 protected void a() 4 / doSomeThing5 67 protected void b() 8 / doSomeThing9 1011 protected void c() 12 / doSomeThing13 1415 差异就在于在第一种方式里面子类实现的代码,变成父类实现了,实现了控制反转(IOC),这个就是我的继承的第一原则,Template。疯狂软件java培训、ios培训新年钜惠,报名Java就业班免费赠送java基础班,报名iOS就业班免费赠送iOS基础班,本月火速抢座中,为回报广大新老学员,值此新年之际推出报读就业班赠送基础班的活动。(疯狂软件学院咨询QQ:544627560电话QQ:707552864疯狂软件官网fkjava)-2014年初活动-疯狂软件Java学习班方向:1.报读JavaEE就业班赠送基础班课程。2.开班一次性(一个月内)交清JavaEE就业班学费,赠送基础
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工培训计划制定流程表
- 2025年瑜伽教练资格证考试题库:瑜伽教练团队协作与试题解析
- 2025年统计学期末考试:可视化统计分析软件操作与应用测试
- 2025年商务师考试题库:商务消费者行为分析试题解析
- 接地电阻检测记录填写指导手册
- 四年级科学教案及教学计划
- 2025年社会工作者职业水平考试中级实务模拟试卷:社会工作实务案例分析与应用综合测试试题
- 肉类蔬菜流通追溯体系标准详解
- 2025年电工中级职业技能考试真题模拟卷:电工中级职业技能考试在线辅导班
- 班级植物角的绿植观察日记写作课范例介绍11篇
- 数字技术赋能下的小学语文课堂创新实践
- 中药塌渍操作方法
- 中科低碳新能源技术学院(能源工程系) 氢能技术应用专业:新版人才培养方案
- 道路工程材料第7版 课件5 水泥混凝土
- 幼儿园秋季预防病
- 燃气行业人力资源数字化转型-深度研究
- TSG ZF001-2006《安全阀安全技术监察规程》
- 卫星传输专业试题题库及答案
- 2023年全国乙卷语文高考真题(含答案)
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- 2023年安徽职业技术学院招聘考试真题
评论
0/150
提交评论