论坛首页 Java企业应用论坛

Spring带来了什么?OOD学而无用

浏览 67478 次
精华帖 (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是用来指导如何进行对象分解的。
0 请登录后投票
   发表时间:2013-04-24   最后修改:2013-04-24
别人怎么样我不太清楚
伪码阶段一般我都是用
结构化设计来表示的
所谓的流程图



PS:
引用
int ACCESS_GRANTED = 1;(投赞成票)
int ACCESS_ABSTAIN = 0;(投弃权票
int ACCESS_DENIED = -1; (投反对票)
AccessDecisioinManager有三种实现

AffirmativeBased -当至少有一个投票者投允许访问票时允许访问
ConsensusBased - 当所有投票者都投允许访问票时允许访问
UnanimousBased - 当没有投票者投拒绝访问票时允许访问


隐了代码实现
使逻辑添加变的很简单 。
逻辑组合 也不是很困难,
在这种抽象基础上作多复杂的逻辑  也很好思考
0 请登录后投票
   发表时间:2013-04-24   最后修改:2013-04-24
我觉得,这是策略模式的应用...

这个贴子是一个有趣的贴子。
大家虽然都在说着同一个词OOD,但是每个人都有自已的定义。都只基于自已的定义去判断别人的结论。当然,也有一些人,知道了几个名词,就开始发挥...

这样的讨论是不会有结果的。

不过到是证明了我贴子的标题。
因为各位每个人的OOD定义都和其他人的不样,显然OOD的本来用意,并没有得到广泛的认可和应用。

0 请登录后投票
   发表时间: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啊。

希望大牛能够指点迷津定乾坤啊。。。


0 请登录后投票
   发表时间: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是可以的。但局部应用设计模式,也是很有意义的。


0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics