最近在做一个项目,在使用面向对象设计过程中总觉得自己做的不是那么的对。比如说面向对象需要依照对象的功能和属性设计类,但是如果我把那个类只用作封装属性而不给他方法,而是用另一个处理类比如XxHandler来实现其的功能,或许用组合啥的,这样还是面向对象设计吗?我还在想面向对象程序设计是不是无法完全脱离面向过程的功能实现思想,或者就是自己面向对象思想掌握不够,设计过程有问题?

解决方案 »

  1.   

    面向对象,有一个特点就是每一个对象都可以独立,每一个对象都可以移置,比如我现在建一个“手”的对象,他相对于人来说是独立的一个模块,这个“手”的对象就可以用于PersonOne,也可以用于PersonTwo。高内聚低耦合。在程序中,我们应该合理运用接口、抽象、类等等建立适合自己程序的模式。
      

  2.   

    面向对象本身是实践,不是理论,没有那么多条条框框,这点反而限制很多想法
    考虑问题的出发点应立足解决问题,面向对象核心思想是针对接口编程,隐藏实现,降低局部复杂度,并应对变化
    设计接口的原则就是职责分配,没有职责的对象,就是肉鸡,就是struct,对吧
    所以抓住职责抓住行为进行设计就ok了