泛谈面向对象 Why OO+多层结构[3]

发表于:2009-11-18来源:作者:点击数: 标签:面向对象Why多层结构
泛谈 面向对象 Why OO+多层结构[3] 软件测试 关键字:oo 在回答这个问题前,我们先来看一看MVC。MVC是现在大家都很熟悉的设计模式。那么到底什么是MVC呢?下面是Wikipedia关于MVC的解释:Model-View-Controller (MVC) is a software architecture that separa
泛谈面向对象 Why OO+多层结构[3]  软件测试

关键字:oo 在回答这个问题前,我们先来看一看MVC。MVC是现在大家都很熟悉的设计模式。那么到底什么是MVC呢?下面是Wikipedia关于MVC的解释:Model-View-Controller (MVC) is a software architecture that separates an application's data model, user interface, and control logic into three distinct components so that modifications to the view component can be made with minimal impact to the data model component. 翻译过来就是:MVC是一种将应用的数据模型、用户界面(视图)以及控制逻辑分解到不同组件中的软件构架。这种分解可以使得视图组件的细修改对数据模型只会产生很小的影响或者根本不产生影响,

    在思考问题的时候,我喜欢跳出问题来看问题,在跨越时间甚至跨越领域的大跨度类比中不断完成思想的升级及重构。回到前面的问题。在软件开发分析设计方法上,一以贯之的其实就是一种类似于MVC的思想:对问题域不断进行重构,使得一种数据(不要狭隘的看待数据,信息、规则、动作,一切都可以被看作是数据)、该数据的管控逻辑、以及该数据的使用者( 不一定是UI,UI只是特例)能够被区分开来。从这个角度来看待软件开发领域的一切,你就会发现,一切都在改变,一切也都没有改变。我们只是为我们一以贯之的方法找到了的应用发领域。如此而已。再简化一点,实质上,一切软件设计方法的突破都是在于指明新的逻辑聚合方向,建立了新的逻辑聚合方法。OO如此,AOP如此,设计模式如此,一切都是如此。

    5)只有一些很特定的情况不适用OO + N-Tier。

    当然不是所有场合都必须或者适用OO + Np-Tier,因为二者的引入无疑会在某些方面增加成本,因此我们必须考虑我们付出的时候会得到什么,我们得到的时候又会失去什么?权衡——这实际上也是我们做一切事情的最基本思路,而不只是针对软件开发。

    大家可以自己权衡何时使用OO + N-Tier。下面是我认为不适合的一些场合:

    a)太简单的应用,写起来没几句代码,使用OO + N-Tier根本不值得

    b)已经有一套很接近目标系统的原型系统,暂时没有必要使用OO + N-Tier,因为成本不合算

    c)开发人员完全不知道该怎么使用OO + N-Tier,教育成本不低,暂时不建议使用

    d)实时、密集信息处理,其处理过程非常简单,连判断都很少,使用OO + N-Tier根本没必要

原文转自:http://www.ltesting.net