设计模式
文章平均质量分 84
lajijijiji
这个作者很懒,什么都没留下…
展开
-
设计模式(10)——原型模式
文章目录前言原型模式 前言 本系列博客仅是本人在复习中所记录 原型模式 定义:是一种对象型创建模式,通过复制原型实例来创建新的对象。 模式对象: 抽象原型类:定义克隆自己的方法的接口 具体原型类:实现具体的克隆业务,并返回一个新的克隆对象 客户类:定义一个原型对象,通过调用该对象的克隆方法来得到更多新的对象。 优点: 通过已有实例对象,提高新实例对象的创建过程的效率。 动态的增加或减少具体原型类 缺点:克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定容易。特别当一原创 2021-10-20 13:58:15 · 75 阅读 · 0 评论 -
设计模式(8)——装饰模式
文章目录前言装饰模式 前言 本系列博客仅是本人复习时所记录 装饰模式 定义:动态的给一个对象增加一些额外的职责。对于给一个类增加功能来说,装饰模式比继承这个类添加方法更加灵活。 场景:一部手机可以给它贴膜,也可以套手机壳,也可以又贴膜又套手机壳。这些装饰并不影响手机本身的使用,不要这些装饰得话手机也能用,而是多了一些更加舒适的体验。 模式角色: 抽象构件 既然要装饰,那么装饰以后的东西必须存在装饰前的东西。所以抽象构件作为具体构件和抽象装饰类的父类,声明了具体构件中的业务方法,使得客户端以一致的方式处理原创 2021-10-20 13:56:58 · 79 阅读 · 0 评论 -
设计模式(7)——适配器模式
文章目录适配器模式 适配器模式 定义:将一个接口转换成客户希望的另一个接口,适配器模式使得接口不兼容的一些类可以一起工作。主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。 角色: 适配器模式具有如下角色: 目标抽象类:定义客户需要使用的特定领域的接口 适配器类:对目标抽象类和适配者类进行适配 适配者类:定义了已经存在的接口,包含了实际的业务逻辑方法。 客户类:针对目标抽象接口进行编程 说明:给定一个场景:现在Target目标类中定义方法名字为me原创 2021-10-20 13:56:15 · 147 阅读 · 0 评论 -
设计模式(5)——代理模式
文章目录代理模式静态代理动态代理JDK实例讲解CGLib实例讲解 代理模式 定义:是一种结构型的代理模式。给某一个对象提供一个代理对象,由代理对象控制对原对象的引用。用户可通过远程代理对象来实现对远程原对象的操作。 模式角色: 抽象主题角色:声明了真实主题和代理主题的共同接口,保证了任何使用真实主题的地方都可以使用代理主题。客户端针对抽象主题进行编程。 代理主题角色:内部包含着真实主题对象作为属性成员,用于调用真实主题对象中的操作。不仅如此,还会在此基础上执行一些代理主题独有的操作。 真实主题角色:实现原创 2021-10-20 13:55:22 · 102 阅读 · 0 评论 -
设计模式(4)——策略模式
文章目录策略模式 策略模式 定义:策略模式对某一个问题,有多种不同的算法,并将每个算法独立的封装起来。它们之间可以相互替换,此模式使得算法的变换不会影响到最终得到的结果。 优点: 避免了if-else的使用,(如果不用策略模式我们可能会使用多重条件语句,不利于维护) 遵循开闭原则,扩展性好,实现代码的解耦合。扩展新的算法时,只需要增加类实现接口,不需要修改源核心业务代码。 遵循单一职责,每个算法子类只完成一项工作。 缺点: 所有的策略类都需要对外暴露,客户端必须知道所有的策略类,并自行决定使用哪一个策原创 2021-10-20 13:54:26 · 105 阅读 · 0 评论 -
设计模式(3)——模板方法模式
文章目录模板方法模式 模板方法模式 定义:指在父类中定义了一个主要算法的骨架流程,并且允许子类可以不改变算法的结构为一个或者多个个性化步骤提供实现,算法的流程执行顺序是由父类掌控的,子类只能配合。实际上是封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同实现,从而让固定的流程产生不同的结果。 优点: 封装不变,扩展可变:父类封装了具体流程以及实现部分不变行为,其它可变行为交由子类进行具体实现; 流程由父类控制,子类进行实现:框架流程由父类限定,子类无法更改;子类可以针对流程某些步骤进行具原创 2021-10-20 13:53:40 · 104 阅读 · 0 评论 -
设计模式(2)——单例模式
文章目录单例模式单例模式简单实例饿汉式单例类懒汉式单例类双重检查锁单例模式静态内部类单例模式枚举类单例模式 单例模式 定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局都可以该实例的访问方法。 注意: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 优点: 在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例 避免对资源的多重占用 缺点: 无抽象层,扩展难 单例类职责过重,原创 2021-10-20 13:52:44 · 241 阅读 · 0 评论 -
设计模式(1)——工厂模式
文章目录概述简单工厂模式工厂方法模式抽象工厂模式 概述 尝试理解以下概念,有助于学习工厂模式。 产品族:一个或多个具有相同特征关联产品的集合。 简单工厂 一个总工厂,可以生产任意产品族的产品。 工厂方法 :将总工厂进行细分,不同类型工厂,生产其对应产品族的一个类型产品。 抽象工厂:不同类型的工厂,生产其对应产品族的多个类型产品。 简单工厂模式 注意:简单工厂模式不属于GoF设计模式 定义:工厂根据传入的参数即可返回客户所需的对象,客户而不需要知道具体类的类名字。客户端只需传入相应的参数,就可以得到相应的对原创 2021-10-20 13:51:32 · 89 阅读 · 0 评论