分解和抽象
2006-11-23 11:53
447 查看
解决一个问题,很重要的一点解决其中的不确定性,一般来说有两种方法:分解和抽象。
所谓分解就是在不确定中将某些确定的部分分离出来,然后对这些确定的部分先提供解决方法,而不确定的部分留到具体问题明确的时候解,分解的最大特点就是局部化确定部分;这种方法的典型用法就是各种工具库,如面向C语言提供的标准IO库,面向Java的标准类库等,这些库在设计的时候并没有局限用于某个特定的领域。
解决不确定性的另一种方法是抽象。所谓抽象就是指在分析不确定性的各种情况后,概括出他们之间的本质特性,这种本质特性就是抽象层次,它们是确定的,抽象的最大特点就是局部化不确定性;这种方法的典型用法就是各种框架,如EJB框架、Spring Framework,HiveMind框架等。
这两种方法各有优缺点,分解方法的优点是它的灵活性,因为它处理的是部分确定性,而对整体的不确定性没有作任何假设,缺点是留下的具体问题太多;抽象的方法优点是解决了整体的抽象部分,因而后面需要处理的只是差异部分,缺点是要求抽象的模型必须准确,如果出现实际问题和抽象模型不匹配的话,抽象的方法就难以处理这类问题,因而存在一定的扩展性风险。
第一种方案是以“分解”方法为主,提供在解决实际问题中可能用到的各类基础工具,如各种连接器,组合工具,流程组合工具等,但不提供更贴近需求层面的抽象层次。
第二种方案是将“抽象”方法和“分解”方法相结合的方法。首先用“分解”的方法提供各种基础工具,其次用“抽象”的方法根据实际的需求抽象出各种业务模型,并使用基础工具实现这些基本业务模型,另外也提供一种机制能够控制这些业务模型。
所谓分解就是在不确定中将某些确定的部分分离出来,然后对这些确定的部分先提供解决方法,而不确定的部分留到具体问题明确的时候解,分解的最大特点就是局部化确定部分;这种方法的典型用法就是各种工具库,如面向C语言提供的标准IO库,面向Java的标准类库等,这些库在设计的时候并没有局限用于某个特定的领域。
解决不确定性的另一种方法是抽象。所谓抽象就是指在分析不确定性的各种情况后,概括出他们之间的本质特性,这种本质特性就是抽象层次,它们是确定的,抽象的最大特点就是局部化不确定性;这种方法的典型用法就是各种框架,如EJB框架、Spring Framework,HiveMind框架等。
这两种方法各有优缺点,分解方法的优点是它的灵活性,因为它处理的是部分确定性,而对整体的不确定性没有作任何假设,缺点是留下的具体问题太多;抽象的方法优点是解决了整体的抽象部分,因而后面需要处理的只是差异部分,缺点是要求抽象的模型必须准确,如果出现实际问题和抽象模型不匹配的话,抽象的方法就难以处理这类问题,因而存在一定的扩展性风险。
第一种方案是以“分解”方法为主,提供在解决实际问题中可能用到的各类基础工具,如各种连接器,组合工具,流程组合工具等,但不提供更贴近需求层面的抽象层次。
第二种方案是将“抽象”方法和“分解”方法相结合的方法。首先用“分解”的方法提供各种基础工具,其次用“抽象”的方法根据实际的需求抽象出各种业务模型,并使用基础工具实现这些基本业务模型,另外也提供一种机制能够控制这些业务模型。
相关文章推荐
- 抽象:组合与分解
- 环境与应用、抽象与分解 ——计算机与生活感悟之一
- MIT公开课:计算机科学及编程导论 Python 笔记4 函数分解抽象与递归
- 分解和组合的抽象方法
- stl string 分解 split
- C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
- 关于印发《全国测绘地理信息行政执法依据》和《全国测绘地理信息行政执法职权分解》的通知
- SVD分解的理解
- 2,工厂模式--抽象工厂
- HDU-1333(素数分解)
- SAF 中抽象工厂的实现(Remoting的实体统一由服务器端实现)
- 抽象方法 抽象类 (abstract)
- 索引色的值分解R,G,B的值
- C#中虚方法与抽象方法的区别
- 将一个正整数分解质因数
- 抽象
- 【转】强大的矩阵奇异值分解(SVD)及其应用
- 初识安卓之:异步备份手机短信,详解自定义接口,回调抽象方法
- 抽象的操作系统(四) --- 文件
- java基础要点(7)面向对象-抽象与接口