前言:
此时同学们对“java水波效果”大约比较关切,我们都需要知道一些“java水波效果”的相关资讯。那么小编同时在网摘上搜集了一些有关“java水波效果””的相关知识,希望我们能喜欢,姐妹们快快来学习一下吧!一个好的程序员一定是用最少的代码实现最多的功能,代码复用是程序员所追求和期望的,这也是Java语言所提倡的;根据以往开发经验整理了一些能够提高代码复用性方法和规则,与大家分享学习。
网络配图
1、面向接口编程:
"面向接口编程"是面向对象设计的第一个基本原则;它的含义是:使用接口和同类型的组件通讯,即,对于所有完成相同功能的组件,应该抽象出一个接口,它们都实现该接口;具体到JAVA中,可以是接口(interface),或者是抽象类(abstract class),所有完成相同功能的组件都实现该接口,或者从该抽象类继承。我们的客户代码只应该和该接口通讯,这样,当我们需要用其它组件完成任务时,只需要替换该接口的实现,而我们代码的其它部分不需要改变!当现有的组件不能满足要求时,我们可以创建新的组件,实现该接口或者直接对现有的组件进行扩展,由子类去完成扩展的功能。
2、对象组合优先考虑,少用类继承:
"优先使用对象组合,而不是类继承"是面向对象设计的第二个原则,这并不是说继承不重要,而是因为每个学习OOP的人都知道面向对象的基本特性之一就是继承,以至于继承已经被滥用了,而对象组合技术往往被忽视了;继承和组合各有优缺点;类继承是在编译时刻静态定义的,且可直接使用,类继承可以较方便地改变父类的实现。但是类继承也有一些不足之处。首先,因为继承在编译时刻就定义了,所以无法在运行时刻改变从父类继承的实现。
对象组合是通过获得对其他对象的引用而在运行时刻动态定义的;由于组合要求对象具有良好定义的接口,而且,对象只能通过接口访问,所以我们并不破坏封装性;只要类型一致,运行时刻还可以用一个对象来替代另一个对象;更进一步,因为对象的实现是基于接口写的,所以实现上存在较少的依赖关系。
网络配图
优先使用对象组合有助于你保持每个类被封装,并且只集中完成单个任务。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物(这正是滥用继承的后果);另一方面,基于对象组合的设计会有更多的对象(但只有较少的类),且系统的行为将依赖于对象间的关系而不是被定义在某个类中。
3、规范代码书写:
(1)、将可变的部分和不可变的部分分离
"将可变的部分和不可变的部分分离"是面向对象设计的第三个原则;如果使用继承的复用技术,我们可以在抽象基类中定义好不可变的部分,而由其子类去具体实现可变的部分,不可变的部分不需要重复定义,而且便于维护;如果使用对象组合的复用技术,我们可以定义好不可变的部分,而可变的部分可以由不同的组件实现,根据需要在运行时动态配置;这样我们就有更多的时间关注可变的部分。
(2)、减少方法的长度
一般我们的方法应该只有尽量少的几行,太长的方法会难以理解,而且如果方法太长,则应该重新设计。方法写的标准我们可以总结为以下原则:
☆ 三十秒原则:如果另一个程序员无法在三十秒之内了解你的函数做了什么(What),如何做(How)以及为什么要这样做(Why),那就说明你的代码是难以维护的,必须得到提高;
☆ 一屏原则:如果一个函数的代码长度超过一个屏幕,那么或许这个函数太长了,应该拆分成更小的子函数;
☆ 一行代码尽量简短,并且保证一行代码只做一件事:那种看似技巧性的冗长代码只会增加代码维护的难度。
(3)、少用case / if语句
要尽量避免在代码中出现判断语句;
(4)、减少参数个数
有大量参数需要传递的方法,阅读性很差,我们可以将所有参数封装到一个对象中来完成对象的传递,这也有利于错误跟踪。
网络配图
(5)、类层次的最高层应该是抽象类
通常情况下,提供一个抽象基类有利做特性化扩展;由于在抽象基类中大部分的功能和行为已经定义好,使我们更容易理解接口设计者的意图是什么。
(6)、尽量减少对变量的直接访问
对数据的封装原则应该规范化,不要把一个类的属性暴露给其它类,而是应该通过访问方法去保护他们,这有利于避免产生波纹效应;如果某个属性的名字改变,你只需要修改它的访问方法,而不是修改所有相关的代码。
每一个程序员养成良好的编程习惯,使别人能够读懂你的代码,进而使用代码,这样有助于提高自身编码水平,也可以提高工作效率,可以说利人利已。好了,从今天起规范自己编程!!!
标签: #java水波效果