摘要: 继承法是支持框架扩展点的简单方法。但是,开发者要实现抽象方法,必须要知道父类中有哪些可用的数据和方法,以及他们的相互关系,因此开发者需要详细了解框架内部结构才能使用它。(我操,绝对不是好设计!)例如,在NewYorkBusiness类中,实现CalculateStateTax 和CalculateFedTax 这两个方法,看上去很简单,但却要求开发者必须知道,有个名为income的 保护型浮点变量,且必须在调用任何一个CalculateXxxTax方法之前为该变量赋值。 而且,父类向自雷暴露其内部细节,降低了父类的封装度, 这可能会导致开发者随意对类的内部状态做出超越其父类设计者意图的访问和修 阅读全文
posted @ 2013-07-25 18:54 grkin 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: 创建扩展点的方法有(1)继承法, (2)组合法先看继承法: 分别是钩子方法, 和模板方法钩子方法是一个占位符,可以是一个抽象类中的抽象方法,或者是一个类,一个应用程序。举例说明钩子方法,也就是抽象方法是如何工作的 public abstract class BasicBusiness { protected float income; //the template method public void ReportTax() { float sTax = CalculateStateTax(); float fTax = CalculateFedTax(); bool ok = CheckBa 阅读全文
posted @ 2013-07-25 16:20 grkin 阅读(1150) 评论(0) 推荐(0) 编辑