锁定老帖子 主题:Spring带来了什么?OOD学而无用
精华帖 (0) :: 良好帖 (9) :: 新手帖 (19) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-04-23
最后修改:2013-04-24
你举的例子让我有点理解你的意思了。
你说的OOD,是用大家俗知的概念表示设计思路的方法。 你们设计文档只是详细到设计思路是吗?比如:在详细设计文档中,说明权限用投票的方法实现。然后,就可以交给开发人员实现了是吗? 以你说的投票为例说说我说的OOD。我没看过spring中关于投票的内容,以下基于我的理解。 对于投票的实现可以按过程实现和OO实现分别如下: 过程方式伪代码: boolean vote(url){ 1. get section 1 data if(section 1 data not accept the url){ return false; } 2. get section 2 data if(section 2 data not accept the url){ return false; } 3. get section 3 data if(section 3 data not accept the url){ return false; } 重复下去... return true; } OO的伪代码: boolean vote(url) { List<Voter> voters=get all voters; for(voter : voters){ if(!voter.isAccept(url)){ return false; } } return true; } 我说的OOD是指导产生第二种实现的方法论。OOD解释了为什么要用对象的方式实现程序?有什么好处?会面临什么问题?如何解决?等等。 前者是功能分解的设计思路,后者是对象分解的设计思路。OOD是用来指导如何进行对象分解的。 |
|
返回顶楼 | |
发表时间:2013-04-24
最后修改:2013-04-24
别人怎么样我不太清楚
伪码阶段一般我都是用 结构化设计来表示的 所谓的流程图 PS: 引用 int ACCESS_GRANTED = 1;(投赞成票)
int ACCESS_ABSTAIN = 0;(投弃权票 int ACCESS_DENIED = -1; (投反对票) AccessDecisioinManager有三种实现 AffirmativeBased -当至少有一个投票者投允许访问票时允许访问 ConsensusBased - 当所有投票者都投允许访问票时允许访问 UnanimousBased - 当没有投票者投拒绝访问票时允许访问 隐了代码实现 使逻辑添加变的很简单 。 逻辑组合 也不是很困难, 在这种抽象基础上作多复杂的逻辑 也很好思考 |
|
返回顶楼 | |
发表时间:2013-04-24
最后修改:2013-04-24
我觉得,这是策略模式的应用...
这个贴子是一个有趣的贴子。 大家虽然都在说着同一个词OOD,但是每个人都有自已的定义。都只基于自已的定义去判断别人的结论。当然,也有一些人,知道了几个名词,就开始发挥... 这样的讨论是不会有结果的。 不过到是证明了我贴子的标题。 因为各位每个人的OOD定义都和其他人的不样,显然OOD的本来用意,并没有得到广泛的认可和应用。 |
|
返回顶楼 | |
发表时间:2013-04-24
太长的一个帖子。看得累。
这么多的牛人,我硬是没有看懂到底啥子是OOD 只有充血的模型才是OOD?或者这俩个可以画上等号? OOD就一定有设计模式的踪迹? 还是说。OOD 是在OOA之后的一个编程思考。只要有了OOA就一定使用了OOD 哎。。。彻底被忽悠晕了。 为什么mvc就不是ood呢? orm解决领域结构。action搞定边界类。service搞定业务逻辑。这种结构不也是经过了ooa的分析才有的嘛。 什么是充血的呢?领域模型里面增加了处理业务的能力叫做充血么?如果是这样,他比mvc的方式好在哪里呢。mvc多好的固定分层方式。为什么还需要费劲的去寻找其他的分层或者组件化的方式呢。 web开发至今没见过丢弃spring的。可见很好啊。但有了spring也需要ooa不是。 边界类 == action 领域结构==orm 业务处理能力 == service 分析完之后直接这么来就可以了。其他的什么事物啥的。我们有spring啊。 希望大牛能够指点迷津定乾坤啊。。。 |
|
返回顶楼 | |
发表时间:2013-04-25
最后修改:2013-04-26
mqlfly2008 写道 太长的一个帖子。看得累。
这么多的牛人,我硬是没有看懂到底啥子是OOD 1.只有充血的模型才是OOD?或者这俩个可以画上等号? 2.OOD就一定有设计模式的踪迹? 3.还是说。OOD 是在OOA之后的一个编程思考。只要有了OOA就一定使用了OOD 哎。。。彻底被忽悠晕了。 4.为什么mvc就不是ood呢? 5.orm解决领域结构。action搞定边界类。service搞定业务逻辑。这种结构不也是经过了ooa的分析才有的嘛。 6.什么是充血的呢?领域模型里面增加了处理业务的能力叫做充血么?如果是这样,他比mvc的方式好在哪里呢。mvc多好的固定分层方式。为什么还需要费劲的去寻找其他的分层或者组件化的方式呢。 7.web开发至今没见过丢弃spring的。可见很好啊。但有了spring也需要ooa不是。 边界类 == action 领域结构==orm 业务处理能力 == service 8.分析完之后直接这么来就可以了。其他的什么事物啥的。我们有spring啊。 希望大牛能够指点迷津定乾坤啊。。。 我不是大牛。 这篇贴子,引起我许多反思。你说的问题,都很有意义,我试着回答一下。 什么是OOA,这个是用在问题域中,分析问题的面向对象方法。 什么是OOD,这个是用在解域中,用来指导产生面向对象实现的方法。 基于以上定义回答你的问题。 1.充血模型是OOD的一种实现形式。不能画等号,OOD除了解决实现形式,还要解决导出这种实现形式的方法。比如:OOA和OOD如何过度、设计如何产生和表达等。 2.不一定。设计模式针对的是设计中出现的特定问题。 3.OOD不是思考过程。是指导产生对象设计的方法论。可能只有OOA没有OOD。 4.mvc是ood。它的问题域是如何拆分界面逻缉和业务逻缉。解是:mvc的划分方法。 5.你说的没错。但这是spring已经分析好的了。不用使用者再分析。 6.充血模型是一种业务逻缉表达方法,特点是适合解决复杂的业务问题。 7.有了spring,开发者对于业务逻缉的实现主要采用的是过程式的思维方式,不是OOD。 8.没有ood是可以的。但局部应用设计模式,也是很有意义的。 |
|
返回顶楼 | |