您的位置:首页 > 其它

分解和抽象

2006-11-23 11:53 447 查看
解决一个问题,很重要的一点解决其中的不确定性,一般来说有两种方法:分解和抽象。

所谓分解就是在不确定中将某些确定的部分分离出来,然后对这些确定的部分先提供解决方法,而不确定的部分留到具体问题明确的时候解,分解的最大特点就是局部化确定部分;这种方法的典型用法就是各种工具库,如面向C语言提供的标准IO库,面向Java的标准类库等,这些库在设计的时候并没有局限用于某个特定的领域。

解决不确定性的另一种方法是抽象。所谓抽象就是指在分析不确定性的各种情况后,概括出他们之间的本质特性,这种本质特性就是抽象层次,它们是确定的,抽象的最大特点就是局部化不确定性;这种方法的典型用法就是各种框架,如EJB框架、Spring Framework,HiveMind框架等。

这两种方法各有优缺点,分解方法的优点是它的灵活性,因为它处理的是部分确定性,而对整体的不确定性没有作任何假设,缺点是留下的具体问题太多;抽象的方法优点是解决了整体的抽象部分,因而后面需要处理的只是差异部分,缺点是要求抽象的模型必须准确,如果出现实际问题和抽象模型不匹配的话,抽象的方法就难以处理这类问题,因而存在一定的扩展性风险。

第一种方案是以“分解”方法为主,提供在解决实际问题中可能用到的各类基础工具,如各种连接器,组合工具,流程组合工具等,但不提供更贴近需求层面的抽象层次。

第二种方案是将“抽象”方法和“分解”方法相结合的方法。首先用“分解”的方法提供各种基础工具,其次用“抽象”的方法根据实际的需求抽象出各种业务模型,并使用基础工具实现这些基本业务模型,另外也提供一种机制能够控制这些业务模型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: