• 等级
  • 240026 访问
  • 88 原创
  • 0 转发
  • 19877 排名
  • 205 评论
  • 135 获赞

2018年博客之星评选,需要您宝贵的一票!非常感谢!

我正在参加CSDN 2018年博客之星评选,希望大家能投我一票,我在NO.018。 感谢大家宝贵的一票,投票地址: https://bss.csdn.net/m/topic/blog_star2018/index

2018-12-31 16:59:22

2019请对2018的我好一点

回顾 细细回顾这一年,不知不觉,就要2019了,2018发生了太多太多事了。依旧记得去年给自己定了三个方向的目标。现在想来,只完成了一个半。感觉这一年都是忙忙碌碌的度过的,却又不知道都忙些了啥。那就写个总结吧。今年也是第三年写年终总结了。 工作与技术 在去年的年终总结中,我也有说,今年要换一份工作,的确是换了份工作,而且还是两份,很多人都没想到,其中也包括我自己。可以说今年是毕业以来,换工作最频繁...

2018-12-29 19:59:19

设计模式之模块模式

概述 在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 使用场景 多个子类有公共方法,并且逻辑基本相同时。 重要的、复杂的方法,可以考虑作为模板方法。 重构时,模板模式一般是最常用的,把相同的代码抽取到父类中,通过子类约束其行为。 ###例子 我们将创建一个定义操作的 Game 抽象...

2018-12-17 10:18:59

设计模式之外观模式

概述 外观模式中开发过程中使用率非常高。它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 使用场景 为复杂的模块或子系统提供外界访问的模块。 子系统相对独立。 预防低水平人员带来的风险。 具体实现 public interface Shape { void draw(); } public clas...

2018-12-17 10:18:33

设计模式之装饰模式

概述 装饰模式也称包装模式,其使用一种对客户端透明的方式来动态扩展对象,同时它也是继承关系的一种替代方式之一。举个例子:孙悟空有 72 变,当他变成"庙宇"后,他的根本还是一只猴子,但是他又有了庙宇的功能。 使用场景 扩展一个类的功能。 动态增加功能,动态撤销。 具体实现 //Component 英雄接口 public interface Hero { //学习技能 void...

2018-12-17 10:18:04

设计模式之桥接模式

概述 桥接模式是把抽象化和实现化进行解耦,使二者可以独立变化。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 使用场景 如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。 对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧...

2018-12-17 10:16:18

设计模式之享元模式

概述 享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 使用场景 系统中存在大量的相似对象。 需要缓冲池的场景。 具体实现 public interface Ticket { public void showTicketInfo(String bunk); } // 火车票 cla...

2018-12-14 15:59:00

设计模式之适配器模式

概述 适配器模式中开发中可以说是使用率最高的设计模式了。在listview、recyclerview中都需要使用适配器模式,并且在开发中遇到最多的问题也往往是在adapter中。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 使用场景 系统需要...

2018-12-14 15:58:31

设计模式之组合模式

概述 组合模式又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 使用场景 部分、整体场景,如树形菜单,文件、文件夹的管理。 具体实现 public class Employee { pri...

2018-12-14 15:57:59

设计模式之代理模式

概述 代理模式也称为委托模式,这种模式在开发和生活中都很常见,比如猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类。 还有让同学,同事带饭也是一种代理。总而言之,代理模式几乎可以说是无处不在了。那么我们看看代理模式有多普遍。 使用场景 当无法或不想直接访问某个对象或者访...

2018-12-14 15:57:34

设计模式之访问者模式

概述 访问者模式是一种将数据结构和数据操作分离的设计模式,它是设计模式中最复杂的一个,一般来说,它的使用概率并不高,但当你真当使用它时,你就真的需要它了。元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。 使用场景 对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。 需要对一...

2018-12-14 15:57:05

设计模式之中介者模式

概述 中介者模式是用来降低多个对象和类之间通信的复杂性。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立变化。 使用场景 系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象。 想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类。 具体实现 我们通过聊天室实例来演示中介者模式。实例中,多个用户可以向聊天室...

2018-12-14 15:56:35

设计模式之迭代器模式

概述 迭代器模式又称游标模式,是行为性模式之一。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 使用场景 访问一个聚合对象的内容而无须暴露它的内部表示。 需要为聚合对象提供多种遍历方式。 为遍历不同的聚合结构提供一个统一的接口。 具体实现 我们将创建一个叙述导航方法的 Iterator 接口和一个返回迭代器的 Container 接口。实现了 Container 接口的实体...

2018-12-14 15:55:54

设计模式之备忘录模式

概述 备忘录模式是一种行为模式,该模式用于保存当前对象,并且在之后可以再次恢复到此状态。这有点像我们平时说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象不能被对象从外部访问,目的是为了保护好被保存的这些对象的状态的完整性以及内部实现不像外暴露。 使用场景 需要保存/恢复数据的相关状态场景。 提供一个可回滚的操作。 具体实现 备忘录模式使用三个类 Memento、Originator 和...

2018-12-14 15:55:25

设计模式之观察者模式

概述 观察者模式是一个使用频率非常高的设计模式。不过这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得他们的依赖性变小,甚至做到毫无依赖。它是一种定义对象间一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 使用场景 关联行为场景,需要注意的是,关联是可拆分的,而不是“组合”关系。 跨系统的消息交换场景,如消息队列,事件机制。 需要在系统中创建一个...

2018-12-14 15:54:51

设计模式之命令模式

概述 命令模式相对于其他模式没有那么多的规定,因为它不是一个很规矩的模式。不过,正因为这一点,命令模式对比其他设计模式更为灵活。我们接触比较多的命令模式无非开关机。我们点击关机命令时,它会先暂停事件,然后结束所有进程,最后关机。也就是说我只需要点击一个关机按钮就可以做到这一系列的命令。而我们的命令模式其实也和这一样。讲一系列的动作进行请求封装,用户只需要调用一个方法,这些动作会被挨个执行。 使用场...

2018-12-14 15:54:18

设计模式之解释器模式

概述 解释器模式一般来说,我们用的比较少,它提供了一种解释语言的语法或者表达式的方式,比如说1+2,我们可以通过解释器模式告诉你这是一个加法。 使用场景 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。 一些重复出现的问题...

2018-12-14 15:53:50

设计模式之责任链模式

概述 责任链模式,顾名思义,它是一个链式模型,这种模式给予请求的类型,对请求的发送者和接收者进行解耦。对于这种结构,每个节点可以拆分在链接,所以,这种模式有着较好的灵活性。 使用场景 多个对象处理同一个请求 在请求处理者不明确的情况下向多个对象中的一个提交一个请求。 需要动态指定一组对象处理请求。 具体实现 众所周知,Android中最常见的责任链模式。现在我们来实现一个简单的责任链模式。 我...

2018-12-14 15:53:14

设计模式之状态模式

概述 在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。状态模式是把所有的行为包装在不同的状态对象中,意在是让一个对象在其内部改变的时候,他的行为也跟着改变。 使用场景 1、行为随状态改变而改变的场景。 2、代码中包含大量的条件语句,比如if-else和switch-case,且这些条件依赖于该对象的状态。 具体实现 这边我以播放器的开始和停止举例。 首先我们创建一个状...

2018-12-14 15:52:40

设计模式之策略模式

概述 策略模式在我们日常开发中也是经常遇见的。比如实现某一个功能有多种算法或者策略。我们根据具体情况去实现它。例如:排序算法,我们可以使用插入、冒泡、快排等等。 针对这种情况,我们一般将多个策略写在一个工具类中去方便调用。我们需要A策略就是调用A方法,需要B策略就调用B方法。 如果将这些算法或者策略抽象出来,变成一个接口,不同的策略有不同的实现类。这样我们就可以通过注入不同的对象去实现策略的动态替...

2018-12-14 15:52:07

博客专家

我就是马云飞

欢迎来到马云飞的博客,寂寞如风一般的少年。正朝着大 牛的方向前行。希望我的博客可以帮助你们向大牛的方向前进。我不信神,但我通过巨人的肩膀凝视神所在的方向。 ...展开 收起
关注
  • 中国
奖章
  • 博客专家
  • 专栏达人
  • 持之以恒