文章分类 - 设计模式学习
摘要:代理模式 为另一个对象提供一个替身或占位符以控制对这个对象的访问。 **主要解决:**对于不能直接访问某些对象的情况,减轻被访问对象的负担 **所属类型:**结构型模式 **如何解决:**增加中间层 **关键代码:**实现与被代理类组合 **优点:**1、职责清晰;2、高扩展性;3、智能化 **缺点
阅读全文
摘要:备忘录模式 在一些有关卡的游戏中,总会有一些存档的操作,这就可以通过备忘录模式来对该状态进行存储;又或者说这是世界上买不到的药后悔药。 **主要解决:**在不破坏封装的前提下,捕获对象的一个内部状态,并在对象外对这个状态进行保存,方便以后恢复到该状态。 **所属类型:**行为型模式 **如何解决:*
阅读全文
摘要:外观模式 外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。 **主要解决:**降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口 **所属类型:**结构型模式 **如何解决:**客户端不与系统耦合,外观类与系统耦合 **关键代码:**在
阅读全文
摘要:适配器模式 让一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 **主要解决:**当需要使用一个现有类而其接口并不符合你的需要时 **所属类型:**结构型模式 **如何解决:**依赖或继承 **关键代码:**适配器继承或依赖已有的对象,实现想要的目标接口。 **优点
阅读全文
摘要:命令模式 简单描述:对执行动作的具体细节进行封装,也就是无需关注具体的实现过程,只需要关注结果即可。 所属类型:行为型模式 适用情况:在某些场合,要对行为进行记录、撤销/重做、事务等处理 实现方法:通过调用者调用接受者执行命令。顺序:调用者->命令->接收者 关键代码:定义三个角色,1、receiv
阅读全文
摘要:享元模式 摘要:当有大量对象即将被创建时,很可能重复创建相同的对象,如果每使用一次就进行一次对象的创建,那么这些对象就会消耗大量内存。此时我们可以将其中相同的部分抽象出来进行存储,当使用相同对象时就无需创建,直接进行使用就可。 **意图:**运用共享技术有效地支持大量细粒度的对象 **主要解决;**
阅读全文
摘要:装饰者模式 结合看书和看菜鸟来说真的是一种比较好的学习方法,刚开始仅仅盯着书来学习,看的自己晕晕乎乎的。但是看完菜鸟教程的讲解以及例子之后,突然从一脸懵逼变得清醒过来。下面进行简单的整理。 简单描述:动态地将责任附加到对象上,若要扩展功能,装饰者模式提供了比继承更具有弹性的替代方案(可代替继承) 所
阅读全文
摘要:观察者模式 简单描述:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。例如:up主和订阅者之间的关系,当up主有视频更新时,就会将更新通知给订阅者。 所属类型:行为型模式 适用情况:目标对象状态发生改变,所有观察者对象都得到通知,进行广播通知。
阅读全文
摘要:工厂方法模式 在进行整理工厂方法模式之前,首先来整理一下六大设计原则中的依赖倒置原则。 先来看一个例子: 这里有一个PizzaStore,也就是一个Pizza工坊,由于Pizza工坊要开下去,就一定要依赖一些相关的Pizza实体,所以此时的PizzaStore是依赖于各个Pizza的子类的。 如果此
阅读全文
摘要:单例模式 第一篇博客,开通博客的目的一个是进行知识的分享,将自己的所学进行整理,并将整理好的结果分享出来;另一方面是养成一个好的习惯,可以通过博客当作自己的一个public记事本。最近在学设计模式相关的知识,就从设计模式开始学习整理把。由于刚步入工作,对设计模式不是特别的了解。在大学的项目中,用的最
阅读全文