摘要: 一、概述通常来说,“行为请求者”与“行为实现者”是紧耦合的。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这些情况下,将“行为请求者”与“行为实现者”解耦,实现二者之间的松耦合就至关重要。命令模式是解决这类问题的一个比较好的方法。二、命令模式命 阅读全文
posted @ 2019-12-17 23:41 天鸿 阅读(705) 评论(0) 推荐(1) 编辑
摘要: Spring.NET IoC容器的用法。 通过简单的例子学习Spring.Net 1、先创建一个控制台程序项目。 2、添加IUserInfoDal 接口。 3、添加AdoNetUserInfoDal类和EFUserInfoDal类,继承IUserInfoDal接口。 AdoNetUserInfoDa 阅读全文
posted @ 2016-03-17 13:54 天鸿 阅读(506) 评论(0) 推荐(1) 编辑
摘要: 我们用抽象构建框架,用实现扩展细节的注意事项而已:单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。 阅读全文
posted @ 2016-02-25 16:53 天鸿 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与类之间的耦合。 阅读全文
posted @ 2016-02-25 15:42 天鸿 阅读(267) 评论(0) 推荐(0) 编辑
摘要: •接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。 •为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。 •提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。 阅读全文
posted @ 2016-02-25 14:22 天鸿 阅读(455) 评论(0) 推荐(0) 编辑
摘要: •低层模块尽量都要有抽象类或接口,或者两者都有。 •变量的声明类型尽量是抽象类或接口。 •使用继承时遵循里氏替换原则。 阅读全文
posted @ 2016-02-25 14:15 天鸿 阅读(293) 评论(0) 推荐(0) 编辑
摘要: •子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 •子类中可以增加自己特有的方法。 •当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。 •当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。 阅读全文
posted @ 2016-02-24 17:39 天鸿 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多; 提高类的可读性,提高系统的可维护性; 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。 阅读全文
posted @ 2016-02-24 17:02 天鸿 阅读(375) 评论(0) 推荐(0) 编辑