今天在一个技术群里有人为了在多个页面实现类似按钮居然说粘贴代码。我当时就疯了。写在基类里面不就完了么。忽然想到一句话,很多人都是在用面向对象的语言写着面向过程的代码。
想想自己当初也是慢慢在写代码过程中慢慢领悟,总结,转变的。很想听听大家如何在自己的项目中做好解藕,复用。有兴趣的人可以分享下自己的经验哈。。。
能放到别的文件的代码不放到一个文件里。
能放到别的方法的代码不放到一个方法里。
我以这两个为原则,然后再根据实际情况取舍。
即使是在同一个文件里,一句代码调起整个功能的感觉也比复制一大堆舒服太多:)
即使是在同一个方法里,多用空行把不同部分分类清楚,也会舒服很多:)
4楼 @yangjie6020 粘贴代码的好处是快,但是代码一旦被粘贴到2处以上以后,就变成了非常顽固的容易出问题的地方,经常会出现某个bug出现在某一代码块,你改了一处,另外一处没有改的问题
我不清楚你实际的决策是什么,但是写在基类里就完了这个决策必须是一个非常深思熟虑的结果。继承一定一定得是你没有办法的时候再用。面向对象里,继承是最强的耦合关系
就仅有的信息猜测,你的这个例子是有多个页面,而每个页面是继承自同一个基类。这个设计本身已经值得怀疑,你的这个基类的用意到底是什么,如果仅仅是因为这几个页面有某个长得像的元素,比如同样的页头,那用继承并不见得是个好主意,用组合就足矣,至于你说的因为有相似的按钮就写在基类,这也很容易犯一个为便利而继承的问题,你思考一下,所有适用于基类的场合,是不是都一定适用于你的所有派生类,如果有一个例子不适合,那你的继承决策就或多或少出了问题
上边的说法其实就是面向对象最最基础的李氏替换法则。很多人要么没学过,要么学了也忘记了。
一定要记得继承是一件非常非常严肃的事