网站外链发布,网站导航设计技巧,开发网站如何选需要注意什么,南昌网络营销外包公司第十九计#xff1a;避免类的臃肿 在我接触过的大部分项目中#xff0c;总会有一个“大胖子“类特别惹眼#xff0c;一般来说#xff0c;这“大胖子“实际上是整个系统的核心类之一#xff0c;之所以“胖“#xff0c;主要原因是很多人都会把自己需要的函数加到这个类中避免类的臃肿 在我接触过的大部分项目中总会有一个“大胖子“类特别惹眼一般来说这“大胖子“实际上是整个系统的核心类之一之所以“胖“主要原因是很多人都会把自己需要的函数加到这个类中却没有人主动请缨来为它“减肥“。可以通过以下几种方式来为它“瘦身” 1、按照某种特性如功能、类型等将这个类拆分成多个类。 2、合并冗余函数保持函数粒度的最小化。 3、去除重复代码。 如果实在不能再“瘦”了那就通过实现相应的接口让它“看上去很瘦“举个例子 public class BigBoy{public void foo1();public void foo2();public void foo3();public void foo4();public void foo5();public void foo6();public void foo7();public void foo8();public void foo9();// 还有很多...
} 这个类有很多函数这让类的使用者很头疼没办法它不能再“瘦“了不过我们可以根据某种特性把这些函数抽象成多个接口例如foo1、foo2、foo3可以抽象成一个接口 public interface LittleBoy{public void foo1();public void foo2();public void foo3();
} 然后让BigBoy实现这个接口并提供一个将BigBoy变成LitterBoy的函数 public class BigBoy implements LittleBoy{public LittleBoy asLittleBoy{)return this;}public void foo1();public void foo2();public void foo3();public void foo4();public void foo5();public void foo6();public void foo7();public void foo8();public void foo9();// 还有很多...
} 这样类的使用者得到将是“瘦版“的BigBoy使用难度大大降低了因此对于需要使用该类所有函数中某个子集的用户我们可以提供一个包含该函数子集的接口实现对象即可。 第二十计保持代码风格的一致性 程序员或多或少都有各自的代码风格当我们看和自己风格不同的人写的代码时都觉得有点别扭甚至会影响读代码的流畅性记得以前有个同事把for语句当if语句用像下面这样太个性了看他的代码真有点头疼。 for(;value10;){...
} 整个程序保持一致的代码风格还是比较重要的如果看着就像一个人写那就太到位了所以最好能在项目初期就统一程序的命名规范、通过逻辑处理规范、注释规范等。 第二十一计成员变量要封装 大部分情况下类中的成员变量都应该被声明为私有的为那些需要被其他类访问的变量增加set或者get函数。如果成员变量声明为公有的那么类就失去了对它们的控制权封装成员变量有以下几个好处 1、在为成员变量赋值时进行有效性校验或其他预处理操作。 2、在返回成员变量的值时进行二次包装当该变量不可用或未初始化时返回默认值。 为成员变量分别增加set和get函数是一件挺繁琐的事情很多人嫌麻烦觉得公有成员变量更方便不过从可维护性和可扩展性的角度看添加set和get是值得的Eclipse中可以自动生成set和get函数的非常方便。 第二十二计用自注释性变量代替复杂条件 嵌套层次较深的IF判断、没有注释的复杂条件大大增加了程序的逻辑复杂性严重降低代码的可读性。对于子条件较多的条件判定可以为各个子条件引入具有自注释性的临时变量来降低复杂性。例如下面是判断登录用户是否能进入网站的后台管理界面 if(userName!null userName.equals(name) (userState ! INACTIVE || userState ! DELETE) userPassword!null userPassword.equals(password) (userGroup Manager || userGroup Root)){...
} 下面是修改后的版本 boolean isUserNameValid userName!null userName.equals(name);boolean isUserActive userState ! INACTIVE || userState ! DELETE;boolean isUserPasswordCorrect userPassword!null userPassword.equals(password);boolean isUserHasAuth userGroup Manager || userGroup Root;if(isUserNameValid isUserActive isUserPasswordCorrect isUserHasAuth){...} 第二种方式不仅使条件判断更具有可读性还能重用子条件。 第二十三计避免重复代码 重复代码是破坏程序可维护性的重量级选手之一大量的重复代码会使代码量膨胀修改重复的代码也很繁琐改了一处后必须同时修改和它重复的代码因此非常引入Bug当有人修改了某处代码而忘记修改其他除重复的代码那么Bug就出现了。所以一旦要拷贝某段代码请先考虑把这段代码通用化。 第二十四计增加注释 记得在第一个公司工作的时候公司很多程序员的代码注释率在40%左右一般都是先写注释然后紧接着写代码因为注释也是一种文档。很多人觉得写注释浪费时间或者没有必要所以他们的代码中没有绿色或者只是星星点点如果代码有一定的复杂性那么其他人看这部分代码可能会比代码作者要费劲的多注释就是帮助别人快速理解自己写的代码。 转载于:https://www.cnblogs.com/west-link/archive/2012/04/18/2447071.html