
设计模式
文章平均质量分 82
lianghe861223
这个作者很懒,什么都没留下…
展开
-
简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
结合简单示例和UML图,讲解工厂模式简单原理。 一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。 你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语...原创 2013-11-27 15:38:00 · 2363 阅读 · 1 评论 -
策略模式与状态模式
策略模式和状态模式虽然类图上很相似,但是运用的时候个人觉得有很大的区别.状态模式:当一个对象的内在状态变化时允许改变起行为,这个对象看起来像是改变了其类。状态模式主要突出了两个字:”改变”, 对!对象的状态决定了状态的行为,事物的本质决定了事物的行为,我们精神亢奋的时候,我们拼命的工作,我们拼命的工作就导致了我们身心疲惫,物品们身心疲惫就导致我们的行为是需要休息;从这里我们可以看...原创 2013-12-05 10:33:39 · 150 阅读 · 0 评论 -
Java静态代理和动态代理
java动态代理(JDK和cglib) JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托 类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代 理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提...原创 2013-12-09 14:47:52 · 562 阅读 · 0 评论 -
里氏代换原则
设计模式六大原则(2):里氏替换原则 (转载) 我们都知道面向对象有三大特性:封装、继承、多态。所以我们在实际开发过程中,子类在继承父类后,根据多态的特性,可能是图一时方便,经常任意重写父类的方法,那么这种方式会大大增加代码出问题的几率。比如下面场景:类C实现了某项功能F1。现在需要对功能F1作修改扩展,将功能F1扩展为F,其中F由原有的功能F1和新功能F2组成。新功能F由类C的...原创 2013-12-12 15:21:40 · 455 阅读 · 0 评论 -
依赖倒置原则
设计模式六大原则(3):依赖倒置原则 (转载) 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。 解决...原创 2013-12-12 15:48:39 · 207 阅读 · 0 评论 -
接口隔离原则
设计模式六大原则(4):接口隔离原则(转载) 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离...原创 2013-12-12 16:29:04 · 192 阅读 · 0 评论 -
迪米特法则
设计模式六大原则(5):迪米特法则 (转载) 定义:一个对象应该对其他对象保持最少的了解。如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从...原创 2013-12-12 16:33:54 · 186 阅读 · 0 评论