设计模式
文章平均质量分 84
micaixiaoduanku
在大二时我迷恋上单片机方面的技术,从此开始了我的技术之旅,在大二到现在这段时间我通过自学和培训学习到了很多知识,从底层数电,模电到单片机(主要是51单片机)到ARM上跑linux系统,再到android应用开发,再此期间也做过不少项目,使我对嵌入式有一个整体的框架。在校期间出于兴趣和将来的就业压力,我自考了西南大学计算机应用的计算机专业,使我学习到更多计算机知识。本人性格开朗, 为人随和,容易与人相处,乐于帮助别人。做事比较有耐性。在高中时爱上打篮球培养了我善于与人合作和为了胜利努力拼搏的精神,我想这对以后的团队合作开发项目都很有帮助。
展开
-
设计模式之代理模式
1,什么是代理设计模式 代理类引用被代理类,对被代理类的功能进行取舍然后封装后为提供给使用者,这叫做代理设计模式. 2,为什么要使用代理设计模式 有一个软件外包公司,它们既承接欧美项目的业务,也承接日本项目的业务,但是他们在面对日本客户的时候,不愿意让日本客户知道他们向欧美提供了哪些外包业务,这个时候我们想要屏蔽掉提供给欧美业务的方法,让日方不知道,那么可以考虑增加一个代理类来屏蔽掉公司对欧原创 2013-06-30 16:43:02 · 643 阅读 · 0 评论 -
设计模式之桥接模式
1,为什么要使用桥接设计模式 我们先来说说在电脑硬件中的集成元件和独立元件之间的区别,先说说集成元件吧. 主机箱有一个叫主板的玩意,是用来插接各种不同的元件的,例如(声卡,显卡,硬盘等).然后协调这些元件进行工作. 其实最早电脑都是集成元件,也就是说主板上面不能进行插接更换元件,用的都是集成的显卡声卡等,耦合性是很高,如果用UML表示就是 总结一下这种设计模式有什么坏处: a,如果我原创 2013-07-15 16:49:59 · 726 阅读 · 0 评论 -
设计模式之几个基本设计原则
设计模式中会时常用到这些设计原则,它们分别是 1,开放-封闭原则 2,单一职责原则 3,依赖倒转原则 4,里式转换原则 5,迪米特法则 下面我们分别对这5个设计原则作介绍: 1开放-封闭原则 什么是开放封闭原则? 开放封闭原则是指类允许扩展功能但是不允许修改类本有的功能. 为什么要使用开放封闭原则? 面对需求的改变可以保持相对的稳定.例如我们在客户端要使用一个加法类,这时候需原创 2013-06-29 15:51:44 · 695 阅读 · 0 评论 -
设计模式之职责链模式
1,为什么要使用职责链设计模式 2,什么是职责链设计模式 3,怎么使用职责链设计模式原创 2013-07-17 17:02:17 · 448 阅读 · 0 评论 -
设计模式之观察者模式
什么是观察者模式? 观察者模式是一种一对多的关系,让多个观察者对象同时监听某一个主题对象.这个主题对象发生变化时会通知所有观察者对象,是他们能够更新自己. 为什么要使用观察者模式? 一个或多个对象需要知道一个对象的行为的改变而做出相应的动作的时候就可以使用观察者模式,这样说估计会有点抽象,打个比方,比如说你养了一只小狗,当你看见这只小狗吐舌头的时候就说明他口渴了,你需要喂它喝水.这里你就是观原创 2013-07-04 22:43:57 · 520 阅读 · 0 评论 -
设计模式之享元模式
1,为什么要使用享元设计模式 一天,我和我的同事去书城看书,我们同时看上了一本叫“大鸟linux私房菜”的书,但是为了节约钱我们只想买一本.这里买一本从设计模式的角度来说就是享元设计模式. 2,什么是享元设计模式 运用共享技术有效的支持大量细粒度的对象. 3,怎么使用享元设计模式 比如说现在有两个读者一个是读者A,一个是读者B,共享3本书“鸟哥的linux私房菜”,“java高级编程”原创 2013-07-21 22:00:19 · 601 阅读 · 0 评论 -
设计模式之解释器模式
为什么要使用解释器模式 有些情况我们需要对类的类容进行解释,比如说我们把“今天星期几?”分别翻译成英语,日语,泰语.这种需求就要用到解释器模式 什么是解释器模式 解释一个类内容,并且解释类有多个. 怎么使用解释器模式 UML 代码: Translate.class public abstract class Translate { public abstract void t原创 2013-07-23 16:25:38 · 399 阅读 · 0 评论 -
设计模式之访问者模式
为什么要使用访问者设计模式? 先看一下下面这段代码 class Person{ private String action ; private String name; public Person(String name){ this.name = name; } public String getAction() { return action; } public v原创 2013-07-24 11:18:35 · 514 阅读 · 0 评论 -
设计模式之备忘录模式
1,为什么要使用备忘录设计模式 当我们需要去保存一个对象的运行状态的时候我们就需要使用备忘录设计模式.假设我们有这样一个需求,有一台dvd机器能够保存之前播放的dvd时间,音量还有亮度.这个操作直接写成代码: DVD机器: public class DvdMachine { private DvdDisc dvdDisc = null; public void setDvdDisc(Dv原创 2013-07-24 22:24:23 · 518 阅读 · 0 评论 -
设计模式之命令模式
1,为什么要使用命令设计模式 当我们有一台多功能的打印机,然后通过电脑直接进行任务,如图 如果通过这样的设计直接去调用多功能一体机的功能,就会存在此时此刻只能进行一个任务,不允许有多个客户端同时操作. 2,什么是命令设计模式 那么现在我们就需要考虑一种新的设计模式,叫做命令设计模式。 命令设计模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求原创 2013-07-16 11:59:47 · 468 阅读 · 0 评论 -
设计模式之装饰者模式
1,什么是装饰者设计模式 我们先来说说什么是装饰,在写字台上面,摆上一个卡通玩偶,这个玩偶就起到了装饰写字台的作用,动态的给一个类添加职责,就添加功能而言,比继承子类要灵活. 2,为什么要使用装饰者设计模式 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。原创 2013-06-29 21:09:21 · 660 阅读 · 0 评论 -
设计模式之抽象工厂模式
1,什么是抽象工厂设计模式 之前有提到过简单工厂设计模式和工厂设计模式,那么现在的抽象工厂设计模式和之前的2种工厂设计模式有什么区别...?恩,这个还是放在最后再谈,先来说说抽象工厂的定义:提供 一系列相关或相互依赖对象的接口,而无需指定他们具体的类。难以理解吧?其实光这样一句定义也会使人感到很迷惑,我们还是接着看下面的就会明白. 2,为什么要使用抽象工厂设计模式 这里还是举例子说明,比如原创 2013-07-10 21:11:05 · 533 阅读 · 0 评论 -
设计模式之工厂模式
1,什么是工厂设计模式? 创建一个创建实例化类的一个接口,让子类去决定实例化哪一个类.与简单工厂方法相比,它让类的实例化延续到了子类. 2,为什么要使用工厂设计模式? 简单工厂设计模式之前已经介绍过了,工厂模式是与简单工厂模式类似,但是也有区别.简单工厂模式是由一个简单工厂类直接产生产品对象,而工厂模式则是抽象出一个工厂接口,然后每个产品都有一个该产品的产品工厂继承自它.那么它和简单工厂有什原创 2013-07-02 22:06:31 · 603 阅读 · 0 评论 -
设计模式之原型模式
什么是原型设计模式? 原型模式其实就是一个对象再创建另一个与原对象相同内容对象,而让创建过程不知道任何细节的方法. 为什么要使用原型设计模式? 在面向对象编程过程中常常会碰见需要复制对象的情况,所以这是我们就会使用原型模式,原型模式又叫克隆方法. 怎么使用原型设计模式? 原型模式原理其实很简单,例如我们有个Student.class要对它进行克隆,那么定义一个MyCloneAble的接口原创 2013-07-01 22:25:37 · 523 阅读 · 0 评论 -
设计模式之外观模式
1,什么外观设计模式? 之前有讲过一种设计原则叫做"迪米特法则"(如果一个类调用另一个类的某一个方法的话,可以通过第三者类转发这个调用.),外观设计模式就是根据"迪米特法则",它为子系统提供整合性接口,使外界更为方便使用这个子系统. 2,为什么要使用外观设计模式? 这里还是通过一个生活中的例子来说明,现在有一个房地产公司,公司的各个部门和职责如下: 综合部工作职责 部门:综合部门 职原创 2013-07-08 21:07:26 · 606 阅读 · 0 评论 -
设计模式之建造者模式
1,什么是建造者设计模式 建造者设计模式:构造流程与表现分离,使得相同的构造流程可以创建出不同的表示. 2,为什么要使用建造者设计模式 下面是我在网上找的汉堡的制作步骤. First heat oven and Cook hamburger with onion(donn‘t forget add salt and pepper) Second Melt margarine, mix原创 2013-07-08 17:06:11 · 580 阅读 · 0 评论 -
设计模式之简单工厂.
什么是简单工厂设计模式? 工厂是生产零部件的地方,在程序中简单工厂就是生产对象.其实简单工厂是设计模式里面一个较为简单的设计模式,也是比较常用的设计模式之一. 为什么要用简单工厂设计模式? 例如我们写一个飞行游戏程序,其中飞机的各种子弹是需要不停的new的.那么在程序中我们需要更具不同的子弹类型产生不同子弹对象. switch(bullettype){ case bullettype1:原创 2013-06-22 21:26:36 · 563 阅读 · 0 评论 -
设计模式之策略模式
什么是策略设计模式? 策略设计模式就是使算法策略清晰化,封装各种算法策略的实现,使算法和算法之间耦合度降低. 为什么要用策略设计模式? 举个例子,百度地图中计算两点之间使用不同交通工具所花的时间,存在根据交通工具的不同存在多种计算方式1,走路2,地铁3,公交车4,出租车那么这么多计算方式如果都写在一个函数里面必然会存在耦合性过高,类与类之间的结构不清晰然后维护困难.那么我们还是要运用类的封装原创 2013-06-23 19:35:47 · 481 阅读 · 0 评论 -
设计模式之状态模式
1,什么是状态设计模式 状态模式的定义是当一个在内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.附图说明 这里先下个定义,状态设计模式具体是什么?为什么要使用状态设计模式?下面具体讲解. 2,为什么要使用状态设计模式 如果说一天的心情会经过高兴->忧郁->难过->愤怒,时间分别是 9~12点是高兴的心情. 12~15点是忧郁的心情 15~18点是难过的心情 18~原创 2013-07-10 16:42:46 · 495 阅读 · 0 评论 -
设计模式之组合模式
1,为什么要使用组合设计模式 2,什么是组合设计模式 3,怎么使用组合设计模式原创 2013-07-13 20:58:06 · 519 阅读 · 0 评论 -
设计模式之适配器模式
1,为什么要使用适配器设计模式 在我们设计中常常会出现一个类所使用的接口与另一个类所提供的接口不一样的情况,那么这个时候就要用适配器设计模式来解决问题 如图,Client想要使用Adaptee的SpecificRequest()但是它只能接收Target类的Request(),那么这种情况下就要使用适配器Adapter,使Adaptee的SpecificRequest()可以伪装成原创 2013-07-12 21:05:48 · 525 阅读 · 0 评论 -
设计模式之迭代器模式
1,为什么要使用迭代器设计模式 当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,而且可能对聚集有多种方式遍历时,需要为遍历不同的聚集结构提供如开始,下一个,是否结束,当前哪一项等 统一接口,你就应该考虑用迭代器模式. 2,什么迭代器设计模式 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 3,怎么使用迭代器设计模式 UML设计图: 代码原创 2013-07-26 17:48:54 · 509 阅读 · 0 评论