![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
墨玉浮白
这个作者很懒,什么都没留下…
展开
-
设计模式之代理模式学习笔记
前言代理模式,也叫做委托模式。就好比请律师打官司一样,为其他对象提供一种代理,来控制对这个对象的访问。结构图接下来我们对以上结构图拆解,进行角色分析:1.Subject:抽象主题类,声明真实主题与代理的共同接口的方法2.RealSubject:真实主题类,代理类所代表的真实主题。用户通过代理类间接的调用此类中的方法3.Proxy:代理类,持有对RealSubject真实主题类的引用,在...原创 2019-04-16 10:50:00 · 135 阅读 · 0 评论 -
设计模式之建造者模式学习笔记
前言建造者模式也叫生成器模式,是创建一个复杂对象的创建型模式,将此创建过程和部件解耦,使其构建过程和部件的表示分离开。解释建造者模式,说白了就是“攒机”。比方说我想要定制一台笔记本电脑,我要求固态必须是2T容量的三星970evo,内存必须是三星的,屏幕也必须是三星的。这里我们只需要把配置、品牌告知商家就行了,至于这台电脑最后怎么组装那就是他们的事了,跟我没关系。结构图角色拆解:1.Di...原创 2019-04-15 15:45:52 · 163 阅读 · 0 评论 -
设计模式之抽象工厂模式学习笔记
前言在学习抽象工厂模式之前,最好先学习了解简单工厂模式和工厂方法模式。原创 2019-04-15 13:31:06 · 163 阅读 · 0 评论 -
设计模式之模板模式学习笔记
前言相信大家都写过各种各样的文档,需求文档、设计文档、使用手册等等。为了提高复用性和灵活度,需要采用一系列的模板来应对。定义定义一个操作中的算法框架,将一些步骤延迟到子类中,使子类不改变一个算法的结构即可重新定义算法的某些特定步骤结构图角色拆解分析:1.AbstractClass:抽象类,定义了一套算法框架2.ConcreteClass:具体实现类举栗实现封装固定的流程,第一步是...原创 2019-04-17 16:59:09 · 119 阅读 · 0 评论 -
设计模式之策略模式学习笔记
前言我想大家都加班写过“业务代码”,一大堆的if else,甚至if里面套if…代码不得已变得十分臃肿,对应的维护成本也有所增加。而策略模式,就是为了解决违反了开放封闭原则的这一问题。定义定义一系列算法,把每个算法都封装起来,并使之可以相互替换。策略模式可以使算法可以独立于用户,来独立的变化结构图角色拆解分析:1.Context:上下文角色,用来操作策略的上下文环境,承上启下,屏蔽高层...原创 2019-04-17 15:44:06 · 150 阅读 · 0 评论 -
设计模式之享元模式学习笔记
前言享元模式是池技术(String常量池、数据库连接池、缓冲池等)的重要实现方式,可以减少应用程序创建对象,降低程序内存的占用,提高性能。定义使用共享对象,有效的大量细粒度的对象结构图角色拆解分析:1.Flyweight:抽象享元角色,同时定义出对象的外部和内部状态的接口或实现2.ConcreteFlyweight:具体享元角色,实现Flyweight定义的业务3.Flyweigh...原创 2019-04-17 14:38:16 · 179 阅读 · 0 评论 -
设计模式之工厂方法模式学习笔记
定义定义一个用于创建对象的接口,让子类去决定是实现哪个类。工厂方法使类的实例化,延迟到了子类。结构图角色拆解分析:1.Product:抽象产品类2.ConcrereProduct:具体产品类,实现Product接口3.Factory:抽象工厂类,返回Product类型对象4.ConcreteFactory:具体工程类,返回ConcreteProduct实例工厂方法模式实现1.抽象...原创 2019-04-14 16:32:15 · 155 阅读 · 0 评论 -
设计模式之简单工厂模式学习笔记
前言简单工厂模式,又叫做静态工厂方法模式。属于创建型工厂模式,但是不属于23中设计模式。学习简单工厂模式,是为了更好地学习工厂方法模式。定义简单工厂模式,即静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类型的实例。结构模型角色拆解分析:Factory工厂类:简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类中创建产品类的方法可以被外部调用,创建所需的产品对象。Prod...原创 2019-04-14 15:29:19 · 178 阅读 · 0 评论 -
设计模式之单例模式学习笔记
前言单例模式是最常用到的设计模式之一,比如封装网络请求框架时,RxJava+Retrofit的封装过程就用到了单例模式。顾名思义,保证一个类只有一个实例,并提供一个访问它的全局访问点。也就是说,要确保这个类只有一个对象实例。思路单例模式要求类有一个方法用来返回对象的一个引用和获取该实例,必须是静态方法,一般使用getInstance。单利模式的实现分两步走:1.把类的构造定义为私有方法,这...原创 2019-04-14 14:47:09 · 153 阅读 · 0 评论 -
设计模式之外观模式学习笔记
前言原创 2019-04-17 11:08:59 · 163 阅读 · 0 评论 -
设计模式分类
前言前面介绍了设计模式的六大原则,不熟悉的童鞋可以点击超链接查看。这里我们再来看一下设计模式的分类。设计模式分类设计模式总共有23种,根据目的准则分类,总共分类为3大类:创建型设计模式、结构型设计模式、行为型设计模式。创建型设计模式共有5种,包括单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式结构型设计模式共7种:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式...原创 2019-04-14 10:40:43 · 214 阅读 · 0 评论 -
设计模式六大原则之白话讲解
前言一个好的程序猿,不应该只是埋头code,更不应该只懂得CV大法。个人认为,一段好的代码,离不开算法和设计模式。概述设计模式有六大原则,分别为单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则、迪米特原则和接口隔离原则。接下来,分别对这六大原则进行学习、分析。1.单一职责原则定义就一个类而言,引起他变化的原因应该有且仅有一个!解释字面意思理解,就是only you!也就是...原创 2019-04-14 10:09:04 · 579 阅读 · 1 评论 -
设计模式之装饰模式学习笔记
前言顾名思义,就是对已经存在的某些类进行装饰,以此来扩展某些功能。在不改变类文件和使用继承的情况下,动态的扩展一个对象的功能,是继承的替代方案之一。通过创建一个包装对象,即装饰包裹真实的对象。定义动态的给一个对象添加一些额外的职责。结构图角色拆解:1.Component:抽象组件,可以是接口或抽象类,被装饰的最原始的对象2.ConcreteComponent:组件具体实现类,实现Co...原创 2019-04-16 15:36:22 · 172 阅读 · 0 评论 -
设计模式之观察者模式学习笔记
前言观察者模式,又叫作发布-订阅模式。一般的特点为对象间的关系为一对多,当一个对象被修改的时候,就会通知它依赖的对象定义定义对象间一种一对多的依赖关系,每当一个对象状态发生改变时,所有依赖于它的对象都会得到通知并自动更新结构图角色拆解分析:1.Subject:抽象主题(被观察者),抽象主题角色把所有的观察者对象(任意数量)保存在一个集合里。抽象主题提供一个接口,可以增加、删除观察者对象...原创 2019-04-18 09:48:39 · 130 阅读 · 0 评论