定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则1.将变化的部分独立出来并封装,以便以后可以轻易改动或扩充次部分,而不影响不需要变化的部分。将Duck中的行为抽取出来。2.针对接口编程,而不是实现编程。Duck类及其子类不实现这些行为,而是把这些行...
分类:
其他好文 时间:
2015-05-17 11:58:00
阅读次数:
110
1.简单的模拟鸭子应用:超类Duck:呱呱叫(quack)和游泳两个方法由超类实现,因为所有的鸭子都有这个功能,display由子类自己实现,表示的是外观。1 class Duck{2 quack(){}3 swim(){}4 abstract display();5 }子类例子:...
分类:
其他好文 时间:
2015-04-28 22:33:26
阅读次数:
151
从今天开始看>,打算每学习一章都写一篇笔记,今天的第零篇希望是一个好的开端,能够善始善终.加油.
设计模式入门
设计原则零:不管当初软件设计的多好,一段时间之后总是成长和改变的,否则软件就会死亡.
设计原则一:找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起
把会变化的部分取出并封装起来,好让其他部分不会受到影响...
分类:
编程语言 时间:
2015-02-11 22:02:40
阅读次数:
186
1、什么是工厂模式 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。2、为什么工厂模式是如此常用 因为工厂模式就相当于创建实例对象的 new,我们经常要根据类 Class 生成实例对象,如 A a=new A() ,工厂模式也是用.....
分类:
其他好文 时间:
2015-02-05 13:00:03
阅读次数:
213
有没有想过设计模式到底是什么?通过本文可以看到设计模式为什么这么重要,通过几个Python的示例展示为什么需要设计模式,以及如何使用。 设计模式是什么? 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之.....
分类:
编程语言 时间:
2014-11-07 18:26:32
阅读次数:
267
Factory Method(工厂模式):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。
工厂模式(Factory)
请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行...
分类:
编程语言 时间:
2014-08-25 19:25:44
阅读次数:
189
//职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.//实例:申请费用的功能,不同金额的费用须要由不同的上级部分审核通过,假设下级没有审核的权限那么就让上级来进行审核//上代码//定义职责对象...
分类:
其他好文 时间:
2014-06-15 15:48:11
阅读次数:
121
1.三个问题:可维护、可复用、可扩展。2.复用VS复制。3.业务封装业务逻辑与界面逻辑分开,降低耦合。4.松耦合现象:具有类似功能的模块或相似流程的函数,写入到同一个函数中,增加耦合。缺点:紧耦合的坏处在于新的修改影响无需修改的代码。解决:将类似的过程或模块定义为不同的子类,并抽象出共有的基类。
分类:
其他好文 时间:
2014-06-05 20:05:45
阅读次数:
251
访问者模式定义:表示一个作用于某对象结构中的各个元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。
从定义上看,这个模式跟装饰模式的定义很相似(动态地给一个对象添加一些额外的职责),但是装饰模式更多是在原有的基础上进行功能加强或者修改;而访问者模式更多是为对象添加全新的功能。
这个模式中用到了二次分发技术,跟tcp协议的三次握手有些类似,首先请求拿到对方的控制权,对方进行接受,然后开始使用控制权
访问者模式本质:预留通路,回调实现
优点:扩展性好,复用性好,分离无关行为
缺点:对象结...
分类:
其他好文 时间:
2014-05-24 22:07:00
阅读次数:
227
桥接模式定义:将抽象部分与它的实现部分分离,使得他们都可以独立地变化
广义来讲,桥接模式非常普遍,面向抽象编程,面向接口编程就可以看作是他的体现
从客户端的调用可以看出来,不管是要增加消息类型还是发送消息的方式,完全是件非常简单的事情,因为没有耦合,扩展起来非常轻松。
Java中的JDBC就是非常典型的桥接应用
桥接模式的本质:分离抽象和实现
桥接模式很好地提现了开闭原则OCP...
分类:
其他好文 时间:
2014-05-23 08:09:33
阅读次数:
210