设计模式
程序员小熊
这个作者很懒,什么都没留下…
展开
-
深入浅出设计模式之工厂模式
一、引子话说十年前,有一个暴发户,他家有三辆汽车---Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机帮他开车。不过暴发户坐车时总是怪怪的:上Benz之后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi后说“开奥迪车!”。你一定会说:这人有病!直接说开车不就行了?!而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍现象,幸运的是,这种有病的现象在OO(面原创 2017-01-16 15:24:31 · 2113 阅读 · 1 评论 -
大话设计模式--装饰模式
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。Component是定义了一个对象接口,可以给这些对象动态地添加职责,ConcreteComponent是定义了一个具体的对象,也可以给这些对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道D原创 2017-09-05 10:49:33 · 295 阅读 · 0 评论 -
设计模式的几个原则
1、单一职责原则就一个类而言,应该仅有一个引起它变化的原因,如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他的职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。2、开放-封闭原则开放-封闭原则,是说软件实体(类,模块,函数等等)应该可以扩展,但是不可以修改。这个原则其实是有两个特征:一个是, 对于扩展开原创 2017-09-04 18:54:29 · 478 阅读 · 0 评论 -
大话设计模式--策略模式
问题:策略模式(Strategy):定义了算法家族,分别封装起来,让各个算法之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。/*** 策略,定义计算报价算法的接口* */public interface Strategy { /** * 计算应该报的价格 * @param goodPrice 商品销售原价 * @r原创 2017-09-04 17:18:47 · 293 阅读 · 0 评论 -
大话设计模式--简单工厂模式
问题:请用C++,JAVA,C#任意一种以面向对象语言实现一个计算器控制台程序:要求输入2个数和运算符号,得到结果第一次编码:public class Program { public static void main(String[] args) throws IOException { System.out.println("请输入数字A:")原创 2017-09-04 14:38:51 · 310 阅读 · 0 评论 -
深入浅出设计模式之桥梁模式
一、引子 桥梁(bright)模式是一个功能非常强大而且适用于多种情况的模式。二、定义与结构 GOF 在《设计模式》中给桥梁模式的定义为:将抽象部分与它的实现部分分离,使它们都可以独立地变化。这里的抽象部分和实现部分不是我们通常认为的父类与子类、接口与实现类的关系,而是组合关系。也就是说,实现部分是被抽象部分调用,以用来完成(实现)抽象部分的功能。原创 2017-01-17 16:10:25 · 497 阅读 · 0 评论 -
深入浅出设计模式之适配器模式
一、引子 有时在给新买的 MP3 充电的时候,发现MP3 播放器只提供了USB 接口充电的方式,而它所配备的充电器无法直接给USB 接口充电,聪明的厂商为充电器装上了一个USB 接口转换器解决了问题。 这个 USB 接口转接器正是我们今天要谈到的适配器。而在软件开发中采用类似于上面方式的编码技巧被称为适配器模式。二、定义和结构 《设计模式》一原创 2017-01-17 15:56:56 · 442 阅读 · 0 评论 -
深入浅出设计模式之原型模式
一、引子 古人云:书非借不能读也。我深谙古人教诲,更何况现在 IT 书籍更新快、价格贵、质量水平更是参差不齐,实在不忍心看到用自己的血汗钱买的书不到半年就要被淘汰,更不想供养使用金山快译、词霸等现代化工具的翻译们。于是我去书店办了张借书卡,这样便没有了后顾之忧了——书不好我可以换嘛! 但是,借书也有不爽的地方,就是看到有用或者比较重要的地方,不能在书旁标记下来。一般原创 2017-01-17 11:08:39 · 352 阅读 · 0 评论 -
深入浅出设计模式之建造模式
一、引子作为装机工,他们不用管你用的CPU 是Intel 还是AMD,也不管你的显卡是2000 千大元还是白送的,都能三下五除二的装配在一起——一台PC诞生了!当然对于客户来说,你也不知道太多关于PC 组装的细节。这和建造模式是多么的相像啊!二、定义与结构 GOF 给建造模式的定义为:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示原创 2017-01-17 10:29:56 · 425 阅读 · 0 评论 -
深入浅出设计模式之单例模式
一、引子单例模式是设计模式中使用很频繁的一种模式,在各种开源框架、应用系统中多有应用。二、定义与结构单例模式又叫做单态模式或者单件模式。在 GOF 书中给出的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式中的“单例”通常用来代表那些本质上具有唯一性的系统组件(或者叫做资源)。比如文件系统、资源管理器等等。单例模式的目的就是要控制特定的类只产生一个对象,当原创 2017-01-17 10:09:47 · 421 阅读 · 0 评论 -
大话设计模式--代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。Subject类定义了RealSubject和ProxySubject的公用接口,这样就在任何使用RealSubject的地方都可以使用ProxySubject。RealSubject类,定义Proxy所代表的真实实体。Proxy类,保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,这样代理就可原创 2017-09-05 11:29:12 · 352 阅读 · 0 评论