面向对象的设计思想
Posted hhxz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的设计思想相关的知识,希望对你有一定的参考价值。
面向对象的设计思想(OO思想,Object Oriented)
1.看到一个需求的时候不应该直接写代码。应该先考虑有哪些类。
2.考虑类的时候,类一定是一类事务的描述,不能太局限。
3.考虑类的时候需要考虑主要的类,也就是需要和业务、动作、事件紧密相关的类。
不要考虑类的时候太发散。先考虑主要的类,然后由主要的去推,有点你考虑的类,可能只是
现有类的一个属性。考虑属性的时候,需要注意,如果有属性当前类中的其他属性相比变化度
太高的话,应该考虑剥离出去(那也要具体情况具体考虑,但是一般来说是这样)。
4.属性:不需要把该类的所有属性都声明出来,只需要自己用到的即可。如:人类,属性成千上万,
不用全部写出来,只需要根据需求,声明出自己需要的即可。
5.属性一般会私有,提供get、set方法区操作。因为如果直接把属性的权限开放,那你就很难限定什么
对象可以访问,如果是方法的话,我如果想让某些对象访问,我就可以在get、set中做限制,这样就可以
更好的去控制我自己的属性被访问的权限,至少比属性直接开放要安全,根据面向对象的原则,所以一般属性都会私有。
6.方法:考虑封装方法的时候,你就站在该类的立场去考虑方法。
如:汽车类的方法,假设你是汽车,你觉得你会有哪些方法,以汽车做主语去考虑:如,我可以跑
7.隐藏和封装:减低耦合度。类的单一职责 "自己的事自己处理","自己只处理自己该处理的,不要做太多杂事"
不要和自己紧密度不高的类和对象有太多的牵连,只和自己最紧密的类和对象处理。
8.要增加或强化功能的时候,首先应该想的扩展(重写或重载等),而不是修改。聚合而不是继承。
9.当同等类型的,相似类型的类过多的时候,我们又会变得写相同或相似代码很多很多了,这时候我们就该想到了继承。
10.有了继承同等类型的类中的代码是少了很多,但是执行或处理这些对象的驱动类还是得分情况处理很多的不同类对象。
所有在此时,我们就可以采用多态的方式,用父类引用指向子类对象。从而解决了处理多个对象而产生的不同方法了。
******(继承是需要谨慎考虑,因为继承是耦合度提高的重要体现之一)*****
11.因为继承是很强耦合性的,且继承只能继承一个类,也就是说一个子类有且只有一个父类。所以如果有要继承多个父类的情况,
那就可以用实现。也就是把父类定义成接口。一个类是可以实现多个类的。并且接口也能实现多态。
12.和大家分享一下我对接口和抽象类设计时候的细微的差别:不太会描述,望大家理解。
1>.如果你只是对一类事物和几类事物的明确的公共特性和功能描述,你就用接口。
2>.如果你现在设计一个已经比较明确类中有些是要实现,但是还没想好如何实现,那你就设计成抽象类。
12.***多态:用父类或父接口引用指向子类对象。面向对象的最核心,最精华的思想,也是后期扩展和维护的一个重要指标,但是也不能随意乱用喔,不要过度设计。(多态是要在继承和实现的前提下的)
13.设计是没有对错的,只是要把握一个度,不能不设计,也不要过度设计,根据实际情况设计,设计也不要急于求成,和一步到位,设计是一个循序渐进的,
也不要刻意和条条框框去框死你的项目,不要为设计而设计。
---------------------
作者:跑步蜗牛
来源:CSDN
原文:https://blog.csdn.net/xp_zyl/article/details/59638426?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于面向对象的设计思想的主要内容,如果未能解决你的问题,请参考以下文章