随笔分类 -  【设计模式复习】

摘要:桥接模式 Bridge Pattern 结构设计模式 定义: 例如: 实验结果: 桥接模式优缺点: 缺点: 设计难度比较大,要能正确识别系统中独立变化的维度,具有局限性。 优点: 阅读全文
posted @ 2016-09-11 22:13 西北野狼 编辑
摘要:用来尽可能减少内存使用量,适用于存在大量重复对象的场景,达到对象共享,避免创建过多对象的效果,提升性能,避免内存溢出。 定义: 使用共享对象有效支持大量细粒度对象。 适用场景: 亨元模式其实是通过集合来缓冲对象,获取的时候,先判断集合里面是否存在该对象,如果有就取出来,没有创建新的,避免不必要的对象 阅读全文
posted @ 2016-09-11 00:28 西北野狼 编辑
摘要:定义: 对象组合成部分整体结构,单个对象和组合对象具有一致性。 看了下大概结构就是集团总公司和子公司那种层级结构。 实现树状嵌套结构。 角色介绍: Component :抽象根节点:其实相当去总公司,抽象子类共有的方法; Composite :相当于总公司的智能部门,也分管子公司,通过集合存储子节点 阅读全文
posted @ 2016-09-03 11:34 西北野狼 编辑
摘要:定义: 为其他对象提供一种代理以控制对这个对象的访问; 角色: 1,抽象主题类,(接口或者抽象类),抽象真实主题和代理的共有方法(如下Subject类); 2,具体实现的主题类,继承或者实现抽象主题类的抽象方法(如下RealSubject类); 3,代理类,继承实现抽象主题类,并提供传递具体实现主题 阅读全文
posted @ 2016-08-31 11:05 西北野狼 编辑
摘要:中介者模式的定义:将多对多关系分散为一对多的关系,将网状结构变成星状结构,降低复杂度,提高扩展性。 角色: Mediator :抽象中介者角色,以抽象类的方式实现,生命具体对象,以及抽象方法; ConcreteMediator:具体中介者角色,实现中介者抽象类Mediator,实现具体对象的业务操作 阅读全文
posted @ 2016-08-29 20:15 西北野狼 编辑
摘要:面向对象的设计的几个目标: 终极的判断软件设计质量的标准: 高内聚,低耦合 设计基本原则: 1,单一职责原则(Single-Responsibility Principle):一个类只处理一个职责,也就是说不要将很多东西都放在一个类里面,尽可能拆分处理,让每个类只负责某一部分的功能。 2,里氏置换原 阅读全文
posted @ 2016-04-18 22:01 西北野狼 编辑
摘要:定义:记忆一个对象的内部状态,为了允许用户取消不确定或者错误的操作,能够恢复到以前的状态。优缺点:优点:1,提供可恢复机制,能够让用户恢复到历史某个状态。2,封装细节的操作。缺点:貌似犯了设计模式的通病,就是类的数量增加,消耗系统资源和性能。在android源码中的使用:activity源码查看:h... 阅读全文
posted @ 2015-12-26 23:40 西北野狼 编辑
摘要:2015年12月15日00:19:02今天只看了理论和demo,明天再写文章,跑步好累2015年12月15日21:36:00解释器模式用来解释预先定义的文法。《大话设计模式》里面这么定义:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个势力表述为一个简单语言中的句子,这样就可以构... 阅读全文
posted @ 2015-12-15 00:20 西北野狼 编辑
摘要:什么是链?前后相连,一个连接下一个,其中包括多个节点,其实责任链模式也类似,他是多个对象之间相互关联,下一个对象的操作由上一个对象关联下来,上一个对象有个方法用于指向其他对象。职责链之间的前后关系是可以改变的,主要看上一节点主要指向哪个节点。android中事件分发就是责任链模式的具体表现:View... 阅读全文
posted @ 2015-12-12 23:06 西北野狼 编辑
摘要:2015年12月10日21:54:25 完成一个功能可能会有好几种算法或者方法来实现,通过对算法和方法的抽象,提供统一接口,不通算法,实现方式为实现类,通过注入不同的实现对象来实现算法,实现方式的灵活切换即为策略模式。 策略模式是针对多种选择的代码片段的优化,是的代码减少修改,符合开闭原则。 优点: 阅读全文
posted @ 2015-12-10 22:35 西北野狼 编辑
摘要:叶子对象和组合对象实现相同的接口。这就是组合模式能够将叶子节点和对象节点进行一致处理的原因。基本概念:组合模式[构造性设计模式]定义了如何将容器对象和叶子对象进行递归组合,使得客户在使用的过程中无须进行区分,可以对他们进行一致的处理。组合模式的角色:Component :组合中的对象声明接口,在适当... 阅读全文
posted @ 2015-10-07 22:41 西北野狼 编辑
摘要:能够游走于聚合内的每一个元素,同时还可以提供多种不同的遍历方式。基本概念:就是提供一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。使用迭代器模式的优点:遍历集合或者数组;忽略集合和数组的结构;提供不同的遍历方式;符合单一职责原则。迭代器角色:抽象迭代器:该接口必须定义实现迭代功能的... 阅读全文
posted @ 2015-10-05 17:43 西北野狼 编辑
摘要:基本概念:Command模式也叫命令模式 ,是行为设计模式的一种。Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数,命令模式将方法调用给封装起来了。命令模式的几个角色:Command: 抽象命令类ConcreteCommand: 具体命令类Invoker: 调用者... 阅读全文
posted @ 2015-10-03 22:56 西北野狼 编辑
摘要:装饰者模式又叫包装模式。 通过另一个对象来扩展自己的行为,在不破坏类的封装的情况下,实现松耦合,易扩展的效果。 抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口可以给这些对象动态地添加职责。 具体组件角色:为抽象组件的实现类,是定义了一个具体的对象,也可以给这个对象添加一些职责。 抽象装饰角 阅读全文
posted @ 2015-10-02 22:40 西北野狼 编辑
摘要:定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。java提供Obeservable类和Observer接口。比如购房,购房者是观察者,而房价是... 阅读全文
posted @ 2015-08-20 12:30 西北野狼 编辑
摘要:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。形象比喻:我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准... 阅读全文
posted @ 2015-06-14 10:28 西北野狼 编辑
摘要:模版设计模式的概念或者定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。以前虽然经常在项目中使用模版设计模式,特别在BaseActivity,BaseFragement,BaseFragementActivity,BaseAdap... 阅读全文
posted @ 2015-05-28 22:11 西北野狼 编辑
摘要:STATE?跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电影再去泡吧怎么样?”,当然你看电影过程中表现良好 阅读全文
posted @ 2015-05-24 21:32 西北野狼 编辑
摘要:今天看到这篇文章:http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.htmlpublic class MyFragment extends Fragment { public st... 阅读全文
posted @ 2015-05-01 23:01 西北野狼 编辑
摘要:BRIDGE?早上碰到MM,要说早上好,晚上碰到MM,要说晚上好;碰到MM穿了件新衣服,要说你的衣服好漂亮哦,碰到MM新做的发型,要说你的头发好漂亮哦。不要问我“早上碰到MM新做了个发型怎么说”这种问题,自己用BRIDGE组合一下不就行了 桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就... 阅读全文
posted @ 2015-04-19 21:58 西北野狼 编辑