分解和抽象

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

所谓分解就是在不确定中将某些确定的部分分离出来,然后对这些确定的部分先提供解决方法,而不确定的部分留到具体问题明确的时候解,分解的最大特点就是局部化确定部分;这种方法的典型用法就是各种工具库,如面向C语言提供的标准IO库,面向Java的标准类库等,这些库在设计的时候并没有局限用于某个特定的领域。
 
解决不确定性的另一种方法是抽象。所谓抽象就是指在分析不确定性的各种情况后,概括出他们之间的本质特性,这种本质特性就是抽象层次,它们是确定的,抽象的最大特点就是局部化不确定性;这种方法的典型用法就是各种框架,如EJB框架、Spring Framework,HiveMind框架等。
 
这两种方法各有优缺点,分解方法的优点是它的灵活性,因为它处理的是部分确定性,而对整体的不确定性没有作任何假设,缺点是留下的具体问题太多;抽象的方法优点是解决了整体的抽象部分,因而后面需要处理的只是差异部分,缺点是要求抽象的模型必须准确,如果出现实际问题和抽象模型不匹配的话,抽象的方法就难以处理这类问题,因而存在一定的扩展性风险。
第一种方案是以“分解”方法为主,提供在解决实际问题中可能用到的各类基础工具,如各种连接器,组合工具,流程组合工具等,但不提供更贴近需求层面的抽象层次。
 
第二种方案是将“抽象”方法和“分解”方法相结合的方法。首先用“分解”的方法提供各种基础工具,其次用“抽象”的方法根据实际的需求抽象出各种业务模型,并使用基础工具实现这些基本业务模型,另外也提供一种机制能够控制这些业务模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值