随笔分类 -  设计

摘要:继承法是支持框架扩展点的简单方法。但是,开发者要实现抽象方法,必须要知道父类中有哪些可用的数据和方法,以及他们的相互关系,因此开发者需要详细了解框架内部结构才能使用它。(我操,绝对不是好设计!)例如,在NewYorkBusiness类中,实现CalculateStateTax 和CalculateFedTax 这两个方法,看上去很简单,但却要求开发者必须知道,有个名为income的 保护型浮点变量,且必须在调用任何一个CalculateXxxTax方法之前为该变量赋值。 而且,父类向自雷暴露其内部细节,降低了父类的封装度, 这可能会导致开发者随意对类的内部状态做出超越其父类设计者意图的访问和修 阅读全文
posted @ 2013-07-25 18:54 grkin 阅读(1079) 评论(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 阅读(1170) 评论(0) 推荐(0)
摘要:--by Jean-Paul Boodhoo首先声明,这种模式可能已经过时,这里只是作为补充知识,回顾一下。这里下载代码快速导航Following the MVP第一次试运行填充下拉菜单实现View接口下一步是什么?UI创建技术,例如 ASP.NET 和Window Forms变得进一步强大, UI经常干了它不该干的活。责任区分不清, 经常把其他层的逻辑都拿了过来。MVP模式很好的解决了这个问题。这我用MVP模式建立了一个显示窗口,使用的是Northwind数据库。UI层充斥一堆逻辑的坏处? 相同的代码重复出现在几个常用的视图里。 测试困难,维护丑陋的UI运行脚本困难。重构的时候,MVP模式可 阅读全文
posted @ 2013-03-28 06:17 grkin 阅读(1126) 评论(0) 推荐(0)
摘要:MVC模式是针对GUI应用的软件架构模式,他体现了关注点分离这样一个基本的设计方针,将一个人机交互应用涉及的功能分为Model,Controller, View三部分,以下是它们相应的职责。--Model 是对应用状态和业务功能的封装,Model接受Controller的请求,并完成相应的业务处理,在状态改变时向View发出相应的通知。--View 实现可视化界面的呈现并捕捉最终用户的交互操作(比如鼠标和键盘操作)。--Controller接受View转发过来的用户操作,完成响应的UI逻辑。如果需要涉及到业务功能的调用,Controller会直接调用Model。在完成UI处理之后,Contro 阅读全文
posted @ 2013-03-20 08:27 grkin 阅读(478) 评论(0) 推荐(1)
摘要:-By Jason McDonald关于设计模式 这个设计模式参考提供四人帮23种模式的快速参考,像原书《设计模式-可复用面向对象基础》中所陈述的,每个模式包括,类图,解释,使用说明和实际例子。创建模式:用来构建对象以便能从实现系统解耦。结构模式:用不同的对象组成大规模的对象结构。行为模式:用来在对象中管理算法,关系,和责任。对象层面:处理对象之间的关系,决定于运行期。类层面:处理类的关系,决定于在编译期。Chain of Responsibility责任链 对象行为 目的:通过把多个接受请求的对象链接起来,给多个对象去执行请求的机会。使用:允许多个对象处理一个请求,处理者不必是特定的对象。存 阅读全文
posted @ 2013-03-17 21:17 grkin 阅读(8851) 评论(0) 推荐(1)