摘要: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。  策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现方式(算法)。实现可以相互替换。策略模式让实现的变化不会影响到调用对象。在不同的项目当中,关于验证的方式有所不同,比如身份证号码,邮政编码等。比如每个人都要“交个人所得税&rd... 阅读全文
posted @ 2010-10-31 22:37 13路易的 阅读(205) 评论(0) 推荐(0) 编辑
摘要: IOC(Inversion of Control)    中文译为控制反转  又称为“依赖注入”(DI =Dependence Injection)    IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。    其原理是基于OO设计原则的The Hollywood ... 阅读全文
posted @ 2010-10-31 22:30 13路易的 阅读(275) 评论(0) 推荐(1) 编辑
摘要: Castle是一个框架,包含了AOP、IOC、ORM等多个方面,其中的Castle.DynamicProxy可以实现动态代理的功能,这个也是很多框架的基础。在IBatis.Net中就是使用了Castle.DynamicProxy来实现数据库连接等动态操作的。同时在NHibernet等其他框架中也使用到了这个技术。特点是实体不需要继承MarshalByRef、ContextBoundObject便可... 阅读全文
posted @ 2010-10-06 21:25 13路易的 阅读(3680) 评论(1) 推荐(1) 编辑
摘要: 1.哥很淡定,学校比哥还淡定,哥淡定是因为哥不怕死,学校比哥淡定是因为学校不怕哥死……2.黄忠六十跟刘备,德川家康七十打天下,姜子牙八十为丞相,佘太君百岁挂帅,孙悟空五百岁西天取经,白素贞一千多岁下山谈恋爱。年轻人,你说你急什么????3.上联:去年光棍,今年光棍,明年好像还是光棍 下联:同桌有主,同学有主,同龄似乎全都有主 横批:悠闲自得 4.光棍节教程:女生看见情侣... 阅读全文
posted @ 2010-10-06 20:13 13路易的 阅读(222) 评论(1) 推荐(0) 编辑
摘要: 问题一:过多的数据库调用  我们发现经常出现的一个问题就是在每次请求/事务中存在过多的数据库查询。有如下三个场景作为佐证:在一次事务上下文中所请求的数据比实际需要的数据多出很多。比如说:请求所有的账户信息而不是仅仅查询出当前需要显示的信息。多次请求同样的数据。这种情况通常发生在相同事务中的不同组件之间是彼此独立的,而每个组件都会请求同样的数据。我们并不清楚当前上下文中已经加载了哪些数据,最后只得多... 阅读全文
posted @ 2010-10-02 13:32 13路易的 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。Softeware entities like classes,modules and functions should be open for extension but closed for modifi... 阅读全文
posted @ 2010-09-26 08:53 13路易的 阅读(1243) 评论(1) 推荐(0) 编辑
摘要: 定义:迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的public方法,我就调用这么多,其他的一概不关心。含义:只和朋友交流朋友类的定义是这样... 阅读全文
posted @ 2010-09-26 08:52 13路易的 阅读(943) 评论(0) 推荐(0) 编辑
摘要: 接口隔离原则 Interface Segregation Principle定义:客户端不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上 我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少。提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。接口... 阅读全文
posted @ 2010-09-26 08:49 13路易的 阅读(1044) 评论(0) 推荐(1) 编辑
摘要: 依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义:高层模块不应该依赖底层模块,两者都应该依赖其抽象; 抽象不应该依赖细节; 细节应该依赖抽象。依赖倒置原则在Java语言中的表现是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的; 接口或抽象类不依赖于实现类; 实现类依赖接口或抽象类。依赖倒置原则实际上就是... 阅读全文
posted @ 2010-09-26 08:42 13路易的 阅读(1791) 评论(0) 推荐(1) 编辑
摘要: 里氏替换原则(Liskov Substitution Principel)是解决继承带来的问题。继承的优点:代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性; 提高代码的重用性; 子类可以形似父类,但又异于父类; 提高代码的可扩展性; 提高产品或项目的开放性。 继承的缺点:继承是侵入性的,只要继承就必须拥有父类的所有属性和方法; 降低代码的灵活性,子类必须拥有父类的属性和方法,让子类增... 阅读全文
posted @ 2010-09-26 08:33 13路易的 阅读(975) 评论(0) 推荐(0) 编辑