设计模式
文章平均质量分 76
Stainky
我有一个梦想... ...
展开
-
设计模式之装饰器模式
装饰器模式可以动态的给对象增加功能,根据实际需要、按照顺序来添加。 比如一间屋子,要在里面放上沙发、装上电视,或者要不要装空调,可以按照自己需要的顺序来依次装饰。 装饰器模式的组成部分可分为对象接口、具体对象、抽象装饰类、具体装饰类; 对象接口:要接收动态添加职责的对象; 具体对象:具体要接受职责的实例; 抽原创 2016-03-16 20:29:59 · 475 阅读 · 0 评论 -
设计模式之享元模式
享元模式:运用共享技术有效的支持大量细粒度的对象。 挺绕的一句话。 当我们在刷微博的时候,也有很多人同时在使用。系统是一样的系统,不同的用户登录上去就有不同的微博等级,页面风格,每个人都有不同的好友,能收到不同的私信。将这个例子抽象一点来说,系统是共享的,每个用户使用的系统都是一样的,而不同的用户登录上去有不同的页面风格和等级。用户可以看做是细粒度的对象,共享原创 2016-03-28 14:37:45 · 395 阅读 · 0 评论 -
设计模式之组合模式
组合模式:将对象组合成属性结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 目录结构、总公司分公司这样的结构最适合采用组合模式来实现。 组合模式可分为: 抽象构建角色:定义了所有参与组合对象的统一接口; 树枝构建角色:拥有子对象的对象,定义了树枝构建对象的统一行为; 树叶构建原创 2016-03-27 23:09:45 · 447 阅读 · 0 评论 -
设计模式之代理模式
举例介绍代理模式。 话说今天白色情人节,小苏喜欢的妹子小曼远在北京,而小苏在上海,要在今天这个特殊的日子里送她一束花,如何送呢?只能是联系北京的花店,预订一束花,让花店帮忙送给心爱的小曼。 小曼收到花,是小苏送的,而完成送花的过程,则是花店代理。在这里,花店是代理者,小苏则是被代理对象。小苏要做的只是挑选一束鲜花,告诉花店地址,付给花店费用,然后花店就会将花送到原创 2016-03-14 20:27:02 · 477 阅读 · 0 评论 -
设计模式之适配器模式
举例来谈适配器模式。 小苏是个泡妞高手,并且泡妞无数。同寝室的小刘性格内敛,沉默寡言,俗话就是说跟妹子在一起放不开。小雯是个长发披肩、温柔妩媚、善良的女孩子,喜欢脾气好的男孩子。小刘的脾气很好,小雯有耳闻,对小刘印象还是不错。小刘对小雯心仪已久,在狼多肉少的校园,小刘怕小雯被截胡,于是请小苏大吃了一顿,并且将小苏的马屁拍的不断,在小苏酒到酣时才转到了正题:如何才能尽快追到小雯。原创 2016-03-13 18:02:47 · 437 阅读 · 0 评论 -
设计模式之观察者模式
举例介绍观察者模式。 401宿舍四人中,有一人是鼎鼎大名的采花大盗小苏,其他三人小张、小顾、小刘均是单身狗,每次采花大盗聒噪一番,告诉此三人要对哪个妹子下手,这三人总是唏嘘不已,没有羡慕嫉妒,只有恨! 在这个例子中,小张等三人为观察者,采花大盗为被观察者。当采花大盗告诉三人喜欢谁的时候,此三人均能得到消息,并有所反应。 这里分为两个角色:采花原创 2016-03-12 22:57:53 · 418 阅读 · 0 评论 -
设计模式之模板方法模式
模板方法模式是定义一套标准的行为规范,比如每个人的周末日常,包括早晨、中午、晚上都有不同的活动,早晨赖床,中午自由活动找乐子,晚上睡觉,而中午自由活动每个人都有不同的兴趣喜好。这样同样是过了一天,每个人的具体行为模式是各有各的不同。将周末日常做成一个抽象类Weekend,早中晚时间为三个方法,晚上的时间都是睡觉,而早上和中午则各有各的安排,定义为抽象方法,强制让子类来实现。最后表现出来的则是都是过原创 2016-03-11 21:49:48 · 409 阅读 · 0 评论 -
设计模式之责任链模式
责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,使这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 责任链的好处在于,处理者也不知道整个责任链是什么样的结构,每个处理者只是保有下一个处理者的引用,并且整个责任链可以在客户端灵活的进行组装连接。 以公司请假为例,经理的批假权限是3天,总监的批假权限是10天,原创 2016-04-04 20:56:06 · 487 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式是将抽象部分与实现部分分离,使它们都可以独立的变化。 ——《设计模式》GOF 就是不关心两个对象是如何生成的,只关心二者是行为是可以随意组合。 比如,男人穿牛仔裤,女人穿裙子,在桥接模式里面,就可以随意的让男人穿裙原创 2016-03-22 19:28:20 · 387 阅读 · 0 评论 -
设计模式之工厂模式
从一个例子开始介绍工厂模式。 假设有一个生产Windows系统兼容机和Mac电脑的工厂,里面有一个装配员,当客户需要一台电脑时,告诉装配员是需要Windows系统电脑还是Mac系统电脑,工厂就会生产一台电脑并且交由装配员装配,然后交给客户。首先需要一个电脑的接口:public interface Computer { public void selfIntroduce(原创 2016-03-10 23:52:45 · 523 阅读 · 0 评论 -
设计模式之状态模式
状态模式是在一个对象的内部状态改变的时候改变其行为。 比如在登录系统的时候,若登录密码错误三次,则锁定该账号。那么在前三次登录的时候,如果密码都错误,系统提示用户“账号或密码错误,请重试!”,要是超过三此密码错误,则锁定账号,提示用户“账号某某已被锁定!”。这里每一个状态都是不同对象的行为。抽象状态角色:public abstract class State { pu原创 2016-03-21 22:27:05 · 405 阅读 · 0 评论 -
设计模式之单例模式
单例模式是一种常见的设计模式,并且有几种不同的写法,不同的写法有不同的效果。懒汉式 public class Singleton { private Singleton() {}; private static Singleton singleton = null; public static Singleton getInstance() { if(sing原创 2016-03-09 19:41:59 · 536 阅读 · 0 评论 -
设计模式之外观模式
外观模式定义了一个高层接口。用户只需要调用高层接口,即可间接调用其他子系统完成相应的动作,而不需要关注子系统是如何被调用的。 比如,当你入手了一辆布加迪威龙(你真的入手了一辆?壕,我们能不能交个朋友?),你会得到两把钥匙,一把是正常点火钥匙,另外一把插入锁孔会解除车速锁定,底盘放低,尾翼收下,带你进入极速世界(真的好想有一辆,10个肾够不够?100个肾能不能买到?)。原创 2016-03-19 10:50:18 · 396 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式分为三部分:建造对象:要被建造的对象,即产品。建造者:建造产品的每个部件。指挥者:指挥建造者依次建造产品的部件。 比如要组装一台电脑,建造者需要组装键盘、CPU、主板、显示器等等,指挥者则指挥建造者先组装主板,再装CPU、内存等等,组装完毕之后,建造者将返回一个产品对象,即组装好的电脑。对象接口:public interface C原创 2016-03-18 11:47:53 · 358 阅读 · 0 评论 -
设计模式之迭代器模式
迭代器模式也叫游标模式,提供一种方法可以访问逐一访问容器里面的每个对象,又不暴露各个对象的内部细节。 迭代器模式分为下面几个角色:迭代器角色:定义访问和遍历容器内元素的接口;具体迭代器:迭代器角色的具体实现,并保存迭代器中的位置;聚集角色:给出创建迭代器对象的接口;具体聚集角色:聚集角色的实现,并返回一个迭代器对象的实例。迭代器角色:public interf原创 2016-03-29 08:48:31 · 345 阅读 · 0 评论