您的位置:知识库 » .NET技术

视角的力量--再说OO设计原则

作者: 坚强2002  来源: 博客园  发布时间: 2008-09-25 16:06  阅读: 4436 次  推荐: 0   原文链接   [收藏]  
[1] 视角的力量--再说OO设计原则
[2] 视角的力量--再说OO设计原则

         OO设计原则总结》一文中我提出了一个问题:如何更好的使用这些原则?怎样在实践中遵守这些原则,使用三种视角思考问题就是答案之一;

     

    本文内容包括:

    1.为什么我们过早的纠缠于细节?问题的本质是什么?

    2.救命稻草--Martin Fowler的三层视角理论

    3.三层视角--回头再说OO设计原则

     

  1. 为什么我们过早的纠缠于细节?问题的本质是什么?
             做设计时过早的关注细节几乎是多数程序员的泥沼,也是我自己的顽疾。就像我刚开始工作不久要做一个自动更新的系统,设计会议上开发组老大定了使用FTP协议完成,你知道我脑袋里面想的是什么?--Indy组件好像不支持中文”…...

          过早的关注细节,大体上可能有两种原因:1.经验丰富,举一反三,纲举目张,各种技术玄妙如数家珍 2.没有什么经验,只知道点技术细节,难以跳出思维桎梏;我知道我是后者,以前是现在也是。

           人是有惰性的,人们习惯性的做自己熟练精通的事情。所以做设计的时候,当对大框架缺少把握能力的时候,潜意识里我更愿意去思考那些细节。这是在偷懒,所有的技术细节、问题都是没有疑问的(我们不是做科研),或者是有疑问你可以很容易获得解答无论是开发文档还是在社区。细节的解决方案总是显而易见,但并非肯定是最好的入手点。

           有时候我真的要做设计了,我想要避免陷入“细节泥沼”可是我还是无意中把细节扯进来,这是为什么?剖析自己,我知道这是因为我的思考是平铺的,是没有层次的,所有的问题搅在一起,做设计的时候难免拖泥带水,泥沙俱下。

           思考没有层次这就是问题本质所在,我要做好设计,而思维方式上的缺陷成为我的命门所在,我该怎么办?说实话我一直在走弯路,而且不知道现在的这条路是否对头。
            “善良的人在追求的中纵然迷茫,却终将意识到有一条正途.-----《浮士德》
     

  2. 救命稻草--Martin Fowler的三层视角理论

         Martin Fowler在他的著作 UML Distilled》中提到了三层视角(perspective):概念视角,规约视角,实现视角。

    使用三种视角看软件开发,我们可以得到这样的描述:

    概念视角:呈现所研究领域中的各种概念,得出概念模型的时候应该尽量少德或者不考虑它的实现,这个视角要回答的问题是:软件要负责什么?是策略性的结论

    规约视角:我们现在考虑的是软件,但是我们关注的是软件的接口而不是实现。规约视角要回答的问题是:怎么使用软件?这个层次关注的是软件各部分的交流。

    实现:这时我们考虑的是代码本身但是许多方面我们使用规约视角可能会更好,软件在规约层交流在实现层执行。

     

    视角帮助我们将问题划分层次,隔离

            从上面的描述我们很明显得看到“软件开发”所设计牵扯的问题已经被划分到三个不同的层次,在每一个层次我们都要有特定的思考成果。在高层没有思考成熟的时候我们不往下一个层次进行,按照这样一个原则,细节被隔离在思维的围墙之外。
           下面一个问题就是,在设计中过程,三种视角对问题进行层次划分能起到什么作用?
     

[第1页][第2页]
0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻