码迷,mamicode.com
首页 > 移动开发 > 详细

避免“锤子”心理

时间:2017-02-24 01:06:42      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:面向对象   设计模式   

避免“锤子”心理

昨天看《大话设计模式》,其中讲到主人公小菜,自从理解了面向对象中的继承,就喜欢使用这样的代码结构,进而限制了思维的事。

我不由地开始反思自己最近的想法。要引以为戒啊。

一、反思

这种“锤子”心理的本质其实是想要立刻有回报——我学会了这手,就要让它派上用场,否则我付出了时间和心血,我就亏本了。结果很有可能为了使用而使用,不仅没有给自己带来方便,反而带来麻烦。

学技术其实很忌讳这样的心理。要引以为戒。

同时,学技术,还应该有这样的肚量——这个东西我学习了,可能不会用上,可能用得很少,或者干脆用不上(可能性很小的哦,更多的情况是你在使用,缺浑然不觉)。但是话说回来——夜路走多了,总会用得上的。除非不对路。

二、组合/聚合复用原则

继承、组合、聚合都是面向对象中复用代码的常用手段。

继承。对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类是,如果继承下来的实现不合适解决新的问题,则父类必须重写或者被其他更合适的类替换。这种依赖关系限制了灵活性并最终限制了复用性。

组合。组合是一种强“拥有”关系,例如大雁和翅膀。大雁拥有翅膀,且两者生命周期一样。组合强调“组”字,是部分和整体的关系。

聚合。聚合是一种弱“拥有”关系,例如大雁和雁群。雁群少一只大雁其实还是可以称之为雁群的。聚合强调“聚”字,是包含和被包含的关系,但被包含不一定就是其中的一部分。

三、随感

上面好大一段都是抄的《大话设计模式》原话。如果我们只是整理、解析别人东西,其实是不可能超越的。只有你去创造,去开拓,去建立前人没有的东西的时候,才能成一家之言。

 


避免“锤子”心理

标签:面向对象   设计模式   

原文地址:http://liuxinpu88521.blog.51cto.com/10412485/1900709

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!