日期:2014-05-18  浏览次数:20734 次

向大家求教关于面向对象的一些问题
最近在做一个项目,在使用面向对象设计过程中总觉得自己做的不是那么的对。比如说面向对象需要依照对象的功能和属性设计类,但是如果我把那个类只用作封装属性而不给他方法,而是用另一个处理类比如XxHandler来实现其的功能,或许用组合啥的,这样还是面向对象设计吗?

我还在想面向对象程序设计是不是无法完全脱离面向过程的功能实现思想,或者就是自己面向对象思想掌握不够,设计过程有问题?

------解决方案--------------------
楼主,不封装方法,只有数据的类一般叫做实体类,没什么不可以的,看设计了。
------解决方案--------------------
面向对象,有一个特点就是每一个对象都可以独立,每一个对象都可以移置,比如我现在建一个“手”的对象,他相对于人来说是独立的一个模块,这个“手”的对象就可以用于PersonOne,也可以用于PersonTwo。高内聚低耦合。在程序中,我们应该合理运用接口、抽象、类等等建立适合自己程序的模式。
------解决方案--------------------
你想的太多了,你这个应该还是符合面向对象的
我给你举个例子
在定义“人”与“车”的时候,
人的属性有 身高了 体重了 姓名了 这些基本属性;车有 型号了 价格了 颜色了 

定义方法的时候,比如在“人”中定义 人开车();与在“车”中定义 车载人(); 其实现的本质功能是一样的。只是设计的考虑角度问题。
------解决方案--------------------
面向对象本身是实践,不是理论,没有那么多条条框框,这点反而限制很多想法
考虑问题的出发点应立足解决问题,面向对象核心思想是针对接口编程,隐藏实现,降低局部复杂度,并应对变化
设计接口的原则就是职责分配,没有职责的对象,就是肉鸡,就是struct,对吧
所以抓住职责抓住行为进行设计就ok了