面向对象里类方法归属问题处理
来源:互联网 发布:html label js 编辑:程序博客网 时间:2024/05/17 21:47
网上一篇文章《十年之后再看“面向对象”》
http://www.cnblogs.com/freeflying/p/7410167.html
里面有讲到:
我举一个例子:现在有两个类,一个用户类(User),一个博客类(Blog),现在有一个发布博客的方法(Publish)。那么,“发布博客”这个方法,究竟是应该放在用户的类里面,还是博客的类里面?即:究竟是User.Publish(Blog)呢,还是Blog.Publish()?
原文作者未说例子给出一个较好的处理方案,并由此例子对面向对象进行了负面的评论。个人认为这块是有待商榷的。
首先我们不能把面向对象简单化了。OO不是简单的把现实的事件来做一个动谓分解。用户发布博客,不能简单的就是一个用户类,然后一个发布的方法。如果这样简单粗暴的话,那OO也就太容易了。
这块个人认为应结合领域驱动来分析问题。用户发布博客应该是business层的一个事件(或者方法)。它应该调用下层相应的领域模型来实现。如博客的状态更新,关注对象的消息通知等。这个发布博客事件可以用一个pipline来实现。而这个 pipline是放在userService还是blogService里,这个根本在面向对象设计时完全可以弱化之(放在userService还是blogService根本不重要,或者放在其中哪一个均可)。
通过对发布博客这个事件的进一步业务分析,设计出更合理的领域模型才应该是OO所关注的重点。
阅读全文
0 0
- 面向对象里类方法归属问题处理
- 面向对象(类,对象,方法)
- 关于面向对象里的子类继承问题
- java面向对象类、方法
- Java面向对象/类/对象/方法
- 从面向结构到面向对象-----josephus问题(方法四:面向对象的实现)
- 蚂蚁过杆问题(二) ------java面向对象处理
- 关于方法里创建类对象
- 对象生命所有权与TaskPool的归属问题
- Java面向对象基础--类的设计及分析问题的方法---用户登录例子
- 面向对象---------String类的常用方法
- python面向对象(二) 内置类方法
- JavaScript面向对象:类、方法、属性
- 面向对象 抽象方法 抽象类
- 面向对象(类、封装、this、构造方法)
- 用面向对象方法解决24点问题
- 用面向过程和面向对象方法实现“数一退三”问题
- josephus问题用面向对象的方法来实现
- 机器学习模型评估指标
- D
- 学习笔记_007
- Qt入门之信号与槽机制
- JVM类加载机制
- 面向对象里类方法归属问题处理
- CUDA性能测试
- 图解阿里云存储产品
- 【备忘】2017年最新从理论到实践机器学习视频教程
- 解决:Ubuntu上,Python3 连接Win 7上的MySQL57数据库,报错误:(2013, ‘Lost connection to MySQL server during query’)
- concurrenthashmap和hashtable区别
- hdu 5441Travel(并查集)
- 链表与顺序表的对比
- 数据结构调试C语言----\n