1.DRY(拧干代码不要有水分) 不要有重复代码,很多概念实际就是为此存在,比如loops function和classes等等,如果有重复,进行抽象。
9.最少耦合,代码(代码块,函数,类,等等)的任何部分,应尽量减少对其他地区的代码的依赖关系。这是通过使用尽可能少的共享变量 。“低耦合往往是一个结构完善的计算机系统的标志和一个好的设计,高凝聚力相结合,实现更高的可读性和可维护性的总体目标。
这两条有那么一点点的矛盾,应该说,这两条都分别偏向了某个极端,而在实际情况当中,往往需要中庸。
我们来看一下这样一种情况,有两个分属不同功能的类,他们都需要调用一段同样功能的代码,那么我们可以有两种做法,一种做法是,在这两个类当中分别实现这一段代码,还一种做法就是我们将这段代码封装在别处,然后这两个类进行调用。这两种做法有什么不同呢?第一种做法,必然造成了代码的一定冗余,这违背了第1条编程原则。而第二种做法则通过那段封装了的代码变相的产生了耦合。这又违背了第9条原则,调用同一个函数,也是一种共享变量。
实际设计当中,如何平衡各方矛盾很重要,如果是我来选择的话,我会选择第一种做法,因为我做的大多是一些偏底层的设计,对于解耦比较看重一些,但是还是那句话,要平衡,这种冗余的量绝不能多,当重复代码数量较多时,还是需要另外封装。