
设计模式
Ang_qq_252390816
这个作者很懒,什么都没留下…
展开
-
策略设计模式—行为型
设计模式主要有23种,大致可分为三类:创建型,机构行,行为型;具体如下:创建型1,单例设计模式2,工厂设计模式3,建造者设计模式4,原型设计模式结构型5,代理设计模式6,桥接设计模式7,装饰设计模式8,适配器设计模式9,外观设计模式10,享元设计模式11,组合设计模式行为型12,模板设计模式13,持续更新....策略设计模式简介(定义)策略模式定义了一系列的算法,并将每一个算法封装起来,而且是它们还可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端(这里原创 2020-10-18 19:26:23 · 348 阅读 · 0 评论 -
模板模式和方法回调及观察者模式的区别
模板模式参考https://blog.youkuaiyun.com/ezconn/article/details/108812616观察者模式参考https://blog.youkuaiyun.com/ezconn/article/details/108564814方法回调或者说回调函数回调是一种双向调用关系。A 类事先注册某个函数H到 B 类,A 类在调用 B 类的M函数的时候,B 类反过来调用 A 类注册给它的H函数。这里的 H 函数就是“回调函数”。A 调用 B,B 反过来又调用 A,这种调用机制就叫作“原创 2020-09-26 22:00:59 · 597 阅读 · 2 评论 -
模板模式—行为型
简介模板方法模式在一个方法中定义一个算法框架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。这里的“算法”,我们可以理解为广义上的“业务逻辑”,并不特指数据结构和算法中的“算法”。这里的算法框架就是“模板”,包含算法框架的方法就是“模板方法”,这也是模板方法模式名字的由来。怎么学绝大部分设计模式的原理和实现,都非常简单,难的是掌握应用场景,搞清楚能解决什么问题。解决的问题模板模式主要是用来解决复用和扩展两个问题。使用场景原创 2020-09-26 20:56:08 · 333 阅读 · 0 评论 -
观察者模式—行为型
前言常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。前面已经学习了创建型和结构型,从这篇起开始学习行为型设计模式。前面讲到了创建型设计模式主要解决“对象的创建”问题,结构型设计模式主要解决“类或对象的组合或组装”问题,那行为型设计模式主要解决的就是“类或对象之间的交互”问题。简介观察者模式(Observer Design Pattern)也被称为发布订阅模式(Publish-Subscribe Design Pattern),定义对象间一种一对多的依赖关系,使得每当一个对象改变状态原创 2020-09-13 22:03:34 · 324 阅读 · 0 评论 -
享元模式—结构型
简介享元模式(英文名称:Flyweight Design Pattern),所谓“享元”,顾名思义就是被共享的单元。享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象。定义中的“不可变对象”指的是,一旦通过构造函数初始化完成之后,它的状态(对象的成员变量或者属性)就不会再被修改了。所以,不可变对象不能暴露任何 set() 等修改内部状态的方法。...原创 2020-07-20 00:00:26 · 457 阅读 · 0 评论 -
组合模式(部分整体模式)—结构型
简介组合模式是指:将一组对象组织成树形结构,以表示一种“部分 - 整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性;使用场景1,表示对象的部分-整体的层次结构时;2,从一个整体中能独立出部分模块或功能的场景;UML图Component:抽象根节点Leaf:具体叶子节点Composite:具体枝干节点...原创 2020-07-20 23:55:30 · 1040 阅读 · 0 评论 -
Code Review(Google标准)
简介Code Review 中文叫代码审查。考虑因素Code Review 考虑的主要常见的几个方面:代码结构是否合理、代码是否容易理解、业务是否正确、异常考虑是否全面、是否有隐藏的 bug、线程是否安全、性能是否满足业务需求、是否符合编码规范等等。带来的好处1,Code Review 践行“三人行必有我师”,互相学习;2,Code Review 能有效提高代码可读性3,Code Review 是技术传帮带的有效途径4,Code Review 能提高团队的自律性;在开发过程中原创 2020-07-13 00:11:33 · 914 阅读 · 0 评论 -
外观模式(门面模式)—结构型
简介外观模式,也叫门面模式,英文全称是 Facade Design Pattern。一个子系统的外部与其内部的通信必须通过一个统一的对象(粒度大一点讲是模块)进行;使用场景1,为一个复杂的子系统提供一个简单的接口。2,当一个项目层次结构有多个时,使用外观模式为每个层次结构定义统一的入口;UML图角色介绍Facade:系统对外统一的接口;SystemA,SystemB,SystemC:子系统;示例手机就是一个外观模式的例子,他集合了电话功能,短信功能,拍照功能,看视原创 2020-07-12 20:26:22 · 657 阅读 · 0 评论 -
代理模式、桥接模式、装饰器模式、适配器模式4种设计模式的区别
前言如果不了解这四种模式的可以查看相关文章:代理模式桥接模式装饰器模式适配器模式区别代理、桥接、装饰器、适配器,这 4 种模式是比较常用的结构型设计模式。它们的代码结构非常相似。笼统来说,它们都可以称为 Wrapper 模式,也就是通过 Wrapper 类二次封装原始类。尽管代码结构相似,但这 4 种设计模式的用意完全不同,也就是说要解决的问题、应用场景不同,这也是它们的主要区别。这里我就简单说一下它们之间的区别。代理模式:代理模式在不改变原始类接口的条件下,为原始类定义原创 2020-10-26 20:11:16 · 1987 阅读 · 0 评论 -
适配器模式—结构型
结构型简介结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。简介适配器模式(Adapter Design Pattern),这个模式就是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不匹配而不能一起工作的类能够在一起工作。使用场景1,想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能将来要引进的类一起工作原创 2020-07-12 17:12:00 · 717 阅读 · 0 评论 -
装饰模式(包装模式)—结构型
结构型简介结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。简介装饰模式(Decorator Pattern)主要解决继承过于复杂的问题,通过组合来替代继承;也就是说是继承关系的一种替代方案之一;UML图组件类public abstract class Component { public abstract void operate()原创 2020-07-05 00:09:50 · 592 阅读 · 0 评论 -
桥接模式(桥梁模式)— 结构型
简介桥接模式,也称为桥梁模式,英文是 BridgePattern。有两种解释:第一种,是经典的GOF《设计模式》中描述到,“将抽象和实现解耦,让它们可以独立变化”。第二种,是其他相关书籍中描述的,”一个类存在两个(或多个)独立变化的维度,我们通过组合的方式,让这两个(或多个)维度可以独立进行扩展“。注意:对于第一种 GOF 的理解方式,弄懂定义中“抽象”和“实现”两个概念,是理解它的关键。定义中的“抽象”,指的并非“抽象类”或“接口”,而是被抽象出来的一套“类库”,它只包含骨架代码,真正的业务.原创 2020-06-27 00:32:01 · 1144 阅读 · 0 评论 -
代理模式(委托模式)— 结构型
结构型简介结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。代理模式代理模式又分为:静态代理和动态代理律师这个职业大家应该都了解;就是代理打官司;下面以律师代理诉讼为例介绍代理模式静态代理静态代理的特点就是代理和被代理都要实现或者继承同一个接口或抽象类;诉讼接口类public interface ILawsuit { //提交申请原创 2020-06-21 23:23:21 · 935 阅读 · 0 评论 -
原型模式—创建型
简介:原型二字说明了该模式应该有一个样板实例,用户从这个样板对象复制(克隆)出一个内部属性一致的对象。被复制的实例就是原型。如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。应用场景1,类初始化需要很消耗资源,通过原型复制创建对象,可以避免这些原创 2020-06-20 21:50:26 · 425 阅读 · 0 评论 -
设计模式中的六大设计原则
设计原则简介设计原则是指导我们代码设计的一些经验总结。设计原则这块儿的知识有一个非常大的特点,那就是这些原则听起来都比较抽象,定义描述都比较模糊,不同的人会有不同的解读。所以,如果单纯地去记忆定义,对于编程、设计能力的提高,意义并不大。对于每一种设计原则,我们需要掌握它的设计初衷,能解决哪些编程问题,有哪些应用场景。主要包括六大基本原则;一,单一职责原则简称:SRP二,开闭原...原创 2020-05-31 16:31:18 · 724 阅读 · 0 评论 -
建造者模式(构建者模式)— 创建型
简介:在面向对象的开发语言中,建造者模式和工厂模式一样也是创建对象的;不同的是工厂模式是用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象,通过设置不同的可选参数,“定制化”地创建不同的对象。应用场景那些场景会应用到建造者模式呢,主要有以下需求是可以用使用:1,一个类有很多属性,必须创建的对象的初始化,如果利用构造函数初始化这些属性,那构造函数回很长,太多参数也不利于使用,容易出错,但是放到set方法原创 2020-06-13 23:14:54 · 1762 阅读 · 0 评论 -
工厂设计模式(三种) — 创建型
简介工厂模式(Factory Design Pattern):也是创建型中常用设计模式;又可细分为三种类型:简单工厂,工厂方法,抽象工厂;工厂顾名思义就是生产产品,在这里是指创建对象;简单工厂模式下面通过动物饲养的例子,实现简单工厂模式;1,创建一个动物接口:public interface Animal {//动物抽象 void eat();//动物的行为}2,具体的动物类(具体对象类)public class Dog implements Animal {原创 2020-06-07 20:39:57 · 764 阅读 · 0 评论 -
Java 实现单例设计模式—创建型
简介单例设计模式(Singleton Design Pattern)解起来非常简单。一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。实现单例一般要考虑的条件:1,构造函数用private 修饰,访问权限的,避免外部通过 new 创建实例(对象);2,考虑对象创建时的线程安全问题;3,考虑是否支持延迟加载;4,考虑 getInstance() 性能是否高(是否加锁)。实现方式实现单例方式:饿汉式,懒汉式,双重检测,静态内部.原创 2020-06-03 00:17:41 · 639 阅读 · 0 评论