在C++中,一般的架构设计都是基于多态,基于接口编程。一般的是基类提供接口,子类根据具体的业务逻辑来实现接口,以此来提供程序设计的过程中的可注入性,提高灵活性,但是事实可能不经如此。引入了多态,其实也就是引入了耦合,其强制规定了继承基类和接口的形式,这在整体继承体系中都是不可以更改的。C++0x中的bind函数和function模板类为我们提供了很好的设计解决方案,提供多态基于函数对象,其只和函数的返回值和参数有关。陈硕老师称其为Object-base编程,通过对象来完成功能注入。拳拳到肉(陈老师原话)。...
分类:
其他好文 时间:
2014-07-27 23:41:15
阅读次数:
383
Professional ASP.NET Design Patterns为什么学习设计模式?运用到ASP.NET应用程序中的设计模式、原则和最佳实践。设计模式和原则支持松散耦合、高内聚的代码,而这将提升代码的可读性、灵活性和可维护性。对于那些已经有很好解决方法的任务,没有理由再去进行重复劳动。著名建...
分类:
Web程序 时间:
2014-07-27 23:24:19
阅读次数:
313
/*接口的理解:接口就是前期定义一个规则!某一个类A,为了扩展自身的功能,对外提供这个接口,后期只要是符合这个接口(规则)的类(这个类是接口的子类),将子类对象的引用传递给类A中方法(方法中的参数就是该子类所实现的接口),就可以和类A建立功能联系!降低了类与类之间的耦合性!*///定义规则inter...
分类:
编程语言 时间:
2014-07-27 23:13:19
阅读次数:
238
Mark:关于责任链Demo。职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。类图:请假--审批(转)描述: 请假这个事情,相信每个人都不陌生。我们公司是个相对很宽松的公司。在公司里,如果你....
分类:
其他好文 时间:
2014-07-27 23:07:00
阅读次数:
264
定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
适用地方:中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合以及想定制一个分布在多个类中的行为,而又不想生成太多的子类的场合。
优点:中介者的出现减少了各个对象的耦合,使得可以独立地改变和复用各个对象类和中介类,比如任何国家的改变不会影响...
分类:
其他好文 时间:
2014-07-27 11:25:32
阅读次数:
187
定义: 一个对象应该对其它的对象保持最少的了解。迪米特法则又称为最少知识法则,英文全称为Least Knowledge Principle ,简称为LKP。 个人理解: 迪米特法则主要目的是类间解耦,弱耦合。只有类弱耦合了后,类的复用性才会提高。 问题由来: 类之间的关系越密切,类之间的耦合程度越高...
分类:
其他好文 时间:
2014-07-27 11:04:12
阅读次数:
222
方法一:利用全局变量 注意,该方法虽然可以实现有多个返回值的函数,但是由于全局变量不能保证值的正确性(因为其作用域是全局,所以程序范围内都可以修改它的值,如果出现错误将非常难以发现),并且全局变量增加了程序间模块的耦合,所以该方法要慎用。 方法二:使用数组指针 注意,该方法适用于多个返回值的数据类型...
分类:
其他好文 时间:
2014-07-26 16:58:21
阅读次数:
257
前言 在上一篇我大致的介绍了这个系列所涉及到的知识点,在本篇我打算把IOC这一块单独提取出来讲,因为IOC容器在解除框架层与层之间的耦合有着不可磨灭的作用。当然在本系列前面的三篇中我也提供了一种基于反射的解耦方式,但是始终不是很优雅,运用到项目中显得别扭。目前,我所掌握的IOC容器主要有两个:一个....
分类:
其他好文 时间:
2014-07-26 14:56:52
阅读次数:
317
观察者模式将观察者(订阅)和被观察者(发布)分离,实现了代码的松耦合;且定义了一对多的依赖关系,让多个观察者同事监听一个被观察者,同时一个被观察者能通知多个观察者更新。...
分类:
其他好文 时间:
2014-07-26 02:55:16
阅读次数:
192
迪米特法则(最少知识原则):如果两个类不必彼此直接通信,那么两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
(1),在类的结构设计上,每一个类都应当尽量降低成员的访问权限。
(2),迪米特法则的根本思想是强调了类的松耦合。
(3),类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成影响。
...
分类:
编程语言 时间:
2014-07-26 02:09:56
阅读次数:
293