前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中提高代码复用性的方法及规范总结

Java中提高代码复用性的方法及规范总结

作者头像
用户1289394
发布2018-02-27 14:50:57
2.5K0
发布2018-02-27 14:50:57
举报
文章被收录于专栏:Java学习网Java学习网

一个好的程序员一定是用最少的代码实现最多的功能,代码复用是程序员所追求和期望的,这也是Java语言所提倡的;根据以往开发经验整理了一些能够提高代码复用性方法和规则,与大家分享学习。

网络配图 1、面向接口编程: "面向接口编程"是面向对象设计的第一个基本原则;它的含义是:使用接口和同类型的组件通讯,即,对于所有完成相同功能的组件,应该抽象出一个接口,它们都实现该接口;具体到JAVA中,可以是接口(interface),或者是抽象类(abstract class),所有完成相同功能的组件都实现该接口,或者从该抽象类继承。我们的客户代码只应该和该接口通讯,这样,当我们需要用其它组件完成任务时,只需要替换该接口的实现,而我们代码的其它部分不需要改变!当现有的组件不能满足要求时,我们可以创建新的组件,实现该接口或者直接对现有的组件进行扩展,由子类去完成扩展的功能。 2、对象组合优先考虑,少用类继承: "优先使用对象组合,而不是类继承"是面向对象设计的第二个原则,这并不是说继承不重要,而是因为每个学习OOP的人都知道面向对象的基本特性之一就是继承,以至于继承已经被滥用了,而对象组合技术往往被忽视了;继承和组合各有优缺点;类继承是在编译时刻静态定义的,且可直接使用,类继承可以较方便地改变父类的实现。但是类继承也有一些不足之处。首先,因为继承在编译时刻就定义了,所以无法在运行时刻改变从父类继承的实现。 对象组合是通过获得对其他对象的引用而在运行时刻动态定义的;由于组合要求对象具有良好定义的接口,而且,对象只能通过接口访问,所以我们并不破坏封装性;只要类型一致,运行时刻还可以用一个对象来替代另一个对象;更进一步,因为对象的实现是基于接口写的,所以实现上存在较少的依赖关系。

网络配图 优先使用对象组合有助于你保持每个类被封装,并且只集中完成单个任务。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物(这正是滥用继承的后果);另一方面,基于对象组合的设计会有更多的对象(但只有较少的类),且系统的行为将依赖于对象间的关系而不是被定义在某个类中。 3、规范代码书写: (1)、将可变的部分和不可变的部分分离 "将可变的部分和不可变的部分分离"是面向对象设计的第三个原则;如果使用继承的复用技术,我们可以在抽象基类中定义好不可变的部分,而由其子类去具体实现可变的部分,不可变的部分不需要重复定义,而且便于维护;如果使用对象组合的复用技术,我们可以定义好不可变的部分,而可变的部分可以由不同的组件实现,根据需要在运行时动态配置;这样我们就有更多的时间关注可变的部分。 (2)、减少方法的长度 一般我们的方法应该只有尽量少的几行,太长的方法会难以理解,而且如果方法太长,则应该重新设计。方法写的标准我们可以总结为以下原则: ☆ 三十秒原则:如果另一个程序员无法在三十秒之内了解你的函数做了什么(What),如何做(How)以及为什么要这样做(Why),那就说明你的代码是难以维护的,必须得到提高; ☆ 一屏原则:如果一个函数的代码长度超过一个屏幕,那么或许这个函数太长了,应该拆分成更小的子函数; ☆ 一行代码尽量简短,并且保证一行代码只做一件事:那种看似技巧性的冗长代码只会增加代码维护的难度。 (3)、少用case / if语句 要尽量避免在代码中出现判断语句; (4)、减少参数个数 有大量参数需要传递的方法,阅读性很差,我们可以将所有参数封装到一个对象中来完成对象的传递,这也有利于错误跟踪。

网络配图 (5)、类层次的最高层应该是抽象类 通常情况下,提供一个抽象基类有利做特性化扩展;由于在抽象基类中大部分的功能和行为已经定义好,使我们更容易理解接口设计者的意图是什么。 (6)、尽量减少对变量的直接访问 对数据的封装原则应该规范化,不要把一个类的属性暴露给其它类,而是应该通过访问方法去保护他们,这有利于避免产生波纹效应;如果某个属性的名字改变,你只需要修改它的访问方法,而不是修改所有相关的代码。 每一个程序员养成良好的编程习惯,使别人能够读懂你的代码,进而使用代码,这样有助于提高自身编码水平,也可以提高工作效率,可以说利人利已。好了,从今天起规范自己编程!!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档