![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 75
疼疼蛇
每个人都有属于自己的人生,在属于自己的人生中每个人都是主角。
展开
-
【设计模式】责任链模式——016
目录装饰器模式简介定义好处缺点主要角色实例总结 装饰器模式 简介 定义 好处 缺点 主要角色 实例 总结 关注博主,一起来学习设计模式吧原创 2021-08-31 21:01:53 · 86 阅读 · 0 评论 -
【设计模式】策略模式——015
目录策略模式简介定义好处缺点主要角色实例总结 策略模式 简介 定义 策略模式是行为型模式。 策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 好处 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。 4、对开闭原则的完美支持。 缺点 1、客户端必须理解所有策略算法的区别,以便适时选择恰当的算法类。 2、策略模式造原创 2021-08-27 00:27:22 · 69 阅读 · 0 评论 -
【设计模式】状态模式——014(杰尼龟和妙蛙种子实战演示状态模式)
目录状态模式简介定义好处缺点主要角色实例创建抽象状态角色创建具体状态角色创建状态环境类客户端运行 状态模式 简介 定义 状态模式是行为型模式。 状态模式通过对有状态的对象,把其状态的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 好处 1、封装了转换规则。 2、枚举可能的状态,在枚举状态之前需要确定状态种类。 3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为,并且将不同状态的行为分割开来,满足“单一职责原则”。原创 2021-08-24 23:45:18 · 160 阅读 · 0 评论 -
【设计模式】享元模式——013
目录享元模式简介定义好处缺点主要角色实例总结 享元模式 简介 定义 享元模式是结构型模式,其通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。(运用共享技术有效地支持大量细粒度的对象。) 好处 相同对象只要保存一份,大大地减少对象的创建,降低系统的内存,使效率提高。 缺点 提高了系统的复杂度,需要分离出外部状态和内部状态,将一些不能共享的状态外部化,且读取享元模式的外部状态会使得运行时间稍微变长。 主要角色 抽象享元角色(Flyweight):是所有的具原创 2021-08-21 00:36:35 · 57 阅读 · 1 评论 -
【设计模式】组合模式——012
目录组合模式简介定义好处缺点主要角色实例创建抽象构件角色(学生集体接口)创建学校类创建年级部类创建班级类(叶子结点)客户端使用 组合模式 简介 定义 1、组合模式是结构型模式 2、组合模式是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性。 3、组合模式一般用来描述整体与部分的关系,它将对象组织到树形结构中。 好处 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象 更容易在组合体内加入新的对象,原创 2021-08-19 00:50:45 · 170 阅读 · 0 评论 -
【设计模式】桥接模式——011【用宝可梦视角学习桥接模式】
目录桥接模式简介定义好处缺点主要角色实例创建桥接实现接口(实现化角色)创建具体实现化类创建抽象化角色扩展抽象化角色Demo总结 桥接模式 简介 定义 桥接模式是结构型模式。 将抽象化部分与实现化部分分开,取消二者的继承关系,改用组合关系。 它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 好处 1、抽象和实现的分离。 2、易于扩展。 3、实现细节对客户透明。 4、符合开闭原则。 缺点 由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,能正确地识别出系统中两个独立原创 2021-08-17 17:30:39 · 87 阅读 · 0 评论 -
【设计模式】外观模式——010
目录外观模式简介定义好处缺点主要角色实例创建子系统角色创建外观角色用户使用总结 外观模式 简介 定义 外观模式是结构型模式。 外观模式即为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 好处 1、减少系统相互依赖,降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因为编译一个子系统不会影响其他的子系统,也原创 2021-08-17 00:50:24 · 76 阅读 · 1 评论 -
【设计模式】代理模式——009
目录代理模式简介定义好处缺点主要角色实例创建抽象主题类创建真实主题类创建代理类顾客购买 代理模式 简介 定义 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 好处 代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性 缺点 代理模式会造成系统设计中类的数量增加 代理模原创 2021-08-15 23:52:19 · 94 阅读 · 1 评论 -
【设计模式】装饰器模式——008
目录装饰器模式简介定义好处缺点主要角色实例创建抽象构件角色创建具体构件角色创建抽象装饰角色创建具体装饰角色使用 装饰器模式 简介 定义 装饰器模式属于对象结构型模式。 装饰器模式指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。 向一个现有的对象添加新的功能,同时又不改变其结构。 好处 完全遵守开闭原则 装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用。 缺点 装饰器模式会增加许多子类,过度使用会增加程序得复杂性。原创 2021-08-14 00:35:08 · 83 阅读 · 1 评论 -
【设计模式】适配器模式——007
目录适配器模式简介定义好处缺点实例按三个角色来写创建一个 Target(目标接口)创建Adaptee(适配者类)创建Adapter(适配器类)客户使用 适配器模式 简介 定义 适配器模式是结构型模式。 适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。 好处 客户端通过适配器可以透明地调用目标接口原创 2021-08-13 00:52:12 · 132 阅读 · 1 评论 -
【设计模式】原型模式——006
目录原型模式简介定义好处缺点实例1、创建一个实现了 Cloneable 接口的抽象类2、在demo中试验总结原型模式通常适用于以下场景 原型模式 简介 定义 原型模式时创建型模式,其用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。 好处 用这种方式创建对象非常高效,根本无须知道对象创建的细节。 Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。 可以使用深克隆方式保存对象的状态,使用原型模原创 2021-08-12 00:52:16 · 82 阅读 · 0 评论 -
【设计模式】建造者模式——005
目录单例模式简介定义好处缺点建造者模式四要素实例1、产品类2、抽象建造者3、具体建造者4、指挥者/导演类总结建造者模式和工厂模式的关注点不同:建造者模式主要适用于以下应用场景: 单例模式 简介 定义 在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。 而建造者模式就是使用多个简单的对象一步一步地构建成一个复杂的对象。 它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。 建造者模式属于创建型模式,它提供了一种创建对象的最佳方式。 好处原创 2021-08-11 00:20:28 · 82 阅读 · 1 评论 -
【设计模式】单例模式——004
目录单例模式简介定义好处缺点实例创建一个SIngleton类从 singleton 类获取唯一的对象 单例模式 简介 定义 单例模式是创建型模式。 单例模式只涉及到一个单一的类,只负责创建自己的对象,同时确保只有单个对象被创建。(单例类必须自己创建自己的唯一实例。) 这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。(单例类必须给所有其他对象提供这一实例。) 有多种实现方式,懒汉式,饿汉式等等。 好处 单例模式能避免对资源的多重占用。 由于只创建了一个实例,减少了内存的开销原创 2021-08-09 20:52:00 · 78 阅读 · 1 评论 -
【设计模式】抽象工厂模式——003
目录抽象工厂模式简介定义好处缺点实例创建手机接口与电脑接口创建实现接口的实体类创建抽象的工厂类创建扩展了抽象工厂类的工厂类创建一个工厂创造器类使用该工厂总结 抽象工厂模式 简介 定义 抽象工厂模式是一种创建类模式,相比较于工厂模式,抽象工厂模式将工厂抽象为一个抽象类,各个工厂继承于这个抽象类,通过创建一个超级工厂,这个超级工厂能创建其他工厂。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 好处 在一个工厂里聚合多个同类产品。 当需原创 2021-08-08 20:24:23 · 91 阅读 · 1 评论 -
【设计模式】工厂模式——002
目录工厂模式简介定义优点缺点实例创建一个接口创建实现接口的实体类创建一个工厂使用该工厂总结 工厂模式 简介 定义 工厂模式是一种创建类模式 工厂模式适用于创建复杂对象 工厂模式可以定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 优点 一个调用者想创建一个对象,只要知道其名称就可以了。 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 屏蔽产品的具体实现,调用者只关心产品的接口。 缺点 每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使原创 2021-08-08 00:49:38 · 88 阅读 · 1 评论 -
【设计模式】初识设计模式——001
初识设计模式 什么是设计模式 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。 本质是面向对象设计原则的实际运用,对类的封装性、继承性和多态性以及类的关联模式和组合关系的充分理解。 为什么要使用设计模式 使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编制真正工程化,项目中合理地运用设计模式可以完美地解决原创 2021-07-08 17:29:19 · 144 阅读 · 1 评论