百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[技术交流] 3个简单的方法提高Java代码可重用性 [复制链接]
查看:2121 | 回复:7

223

主题

227

帖子

66

积分

落伍者(一心一意)

Rank: 1

贡献
17
鲜花
1
注册时间
2012-6-19
发表于 2012-8-24 11:29:07 | |阅读模式 来自 中国湖北武汉
方法一:改写类的实例方法
      通过类继承实现代码重用不是精确的代码重用技术,因此它并不是最理想的代码重用机制。换句话说,如果不继承整个类的所有方法和数据成员,我们无法重用该类里面的单个方法。继承总是带来一些多余的方法和数据成员,它们总是使得重用类里面某个方法的代码复杂化。另外,派生类对父类的依赖关系也使得代码进一步复杂化:对父类的改动可能影响子类;修改父类或者子类中的任意一个类时,我们很难记得哪一个方法被子类覆盖、哪一个方法没有被子类覆盖;最后,子类中的覆盖方法是否要调用父类中的对应方法有时并不显而易见。
     任何方法,只要它执行的是某个单一概念的任务,就其本身而言,它就应该是首选的可重用代码。为了重用这种代码,我们必须回归到面向过程的编程模式,把类的实例方法移出成为全局性的过程。为了提高这种过程的可重用性,过程代码应该象静态工具方法一样编写:它只能使用自己的输入参数,只能调用其他全局性的过程,不能使用任何非局部的变量。这种对外部依赖关系的限制简化了过程的应用,使得过程能够方便地用于任何地方。当然,由于这种组织方式总是使得代码具有更清晰的结构,即使是不考虑重用性的代码也同样能够从中获益。

方法二:把参数类型改成接口
      在面向对象编程中,代码重用真正的要点在于通过接口参数类型利用多态性,而不是通过类继承,“……我们通过对接口而不是对类编程达到代码重用的目的。如果某个方法的所有参数都是对一些已知接口的引用,那么这个方法就能够操作这样一些对象:当我们编写方法的代码时,这些对象的类甚至还不存在。从技术上说,可重用的是方法,而不是传递给方法的对象。”
    在“方法一”得到的结果上应用Holub的看法,当某块代码能够编写为独立的全局过程时,只要把它所有类形式的参数改为接口形式,我们就可以进一步提高它的可重用能力。经过这个改动之后,过程的参数可以是实现了该接口的所有类的对象,而不仅仅是原来的类所创建的对象。由此,过程将能够对可能存在的大量的对象类型进行操作。

方法三:选择最简单的参数接口类型
     在实施第二个方法 时,应该选用哪一种接口类型来取代给定的类形式?答案是哪一个接口完全满足过程对参数的需求,同时又具有最少的多余代码和数据。描述参数对象要求的接口越简单,其他类实现该接口的机会就越大——由此,其对象能够作为参数使用的类也越多。

72

主题

168

帖子

10

积分

落伍者(一心一意)

Rank: 1

贡献
132
鲜花
1
注册时间
2011-3-25
发表于 2012-8-24 16:41:18 | 来自 中国北京
我是菜鸟,好东西
铜扶手www.hzpttzs.com;灯饰灯具厂家www.hzzqzm.com

8

主题

40

帖子

-10

积分

接近落伍(少量栏能发帖)

贡献
18
鲜花
0
注册时间
2012-7-19

落伍手机绑定

发表于 2012-8-24 16:51:13 | 来自 中国广东广州
学习了。

16

主题

2860

帖子

2999

积分

落伍者(两全齐美)

Rank: 2

贡献
3487
鲜花
25
注册时间
2006-8-13
发表于 2012-8-27 01:14:37 | 来自 中国江西九江
嘿嘿,回个贴表明我来过。

220

主题

1万

帖子

9740

积分

落伍者(三羊开泰)

管理员

Rank: 3Rank: 3

贡献
225
鲜花
1
注册时间
2005-1-20
发表于 2012-8-27 10:59:55 | 来自 中国湖南张家界
我是菜鸟。

281

主题

2003

帖子

350

积分

落伍者(一心一意)

Rank: 1

贡献
140
鲜花
3
注册时间
2011-9-23
发表于 2012-9-15 16:24:50 | 来自 中国河南新乡
方法不错
双梁门式起重机|http://www.nucleon.com.cn

12

主题

325

帖子

158

积分

落伍者(一心一意)

Rank: 1

贡献
199
鲜花
0
注册时间
2012-8-28

落伍手机绑定

发表于 2012-9-16 18:48:28 | 来自 中国广东深圳
说的比较概念,要是有个例子,对我这样不是很懂的人就好了
创富ERP-POS销售/进销存/各行业通用http://www.chuangfuerp.com
头像被屏蔽

13

主题

1268

帖子

293

积分

禁言

贡献
22
鲜花
1
注册时间
2012-7-25
发表于 2012-9-17 10:00:41 | 来自 中国福建厦门
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-5-18 18:39 , Processed in 0.116207 second(s), 37 queries , Gzip On.

返回顶部