当前位置:首页 > 服务端 > 常用的7种设计模式简单介绍

常用的7种设计模式简单介绍

2022年09月17日 22:53:03服务端10

常用的7种设计模式简单介绍

一、面向对象的六大原则

  1. 单一职责原则
    将一组相关性很高的函数、数据封装到一个类中。换句话说,一个类应该有单一的职责
  2. 开闭原则
    一个类应该对于扩展是开放的,但是对于修改是封闭的
  3. 里氏替换原则
    里氏替换原则的定义为:所有引用基类的地方必须能透明地使用其子类对象。本质上就是说,要好好利用继承和多态,以父类的形式声明的变量(或形参),赋值为任何继承于这个父类的子类后不影响程序的执行。
    在抽象类设计的时候就运用到了里氏替换原则。
  4. 依赖倒置原则
    依赖倒置原则主要是实现解耦,使得高层次的模块不依赖于低层次模块的具体实现细节。
    关键点:
    ① 高层模块不应该依赖底层模块具体实现,二者应该依赖其抽象类或接口;
    ② 抽象不应该依赖细节;
    ③ 细节应该依赖于抽象;
  5. 接口隔离原则
    接口隔离原则的定义:类之间的依赖关系应该建立在最小的接口上。其原则是将非常庞大的、臃肿的接口拆分成更小的更具体的接口。
  6. 迪米特原则
    一个对象应该对其他的对象有最少的了解

二、设计模式

  1. 单例模式
    定义:确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例
    最简单的单例模式如下:
    常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
    上述单例模式在单线程下没有问题,但是在多线程的情况下就会出现问题,具体解决方案可以观看:设计模式(二):单例模式的七种写法
  2. Builder模式(创建者模式)
    创建者模式定义:将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。
    Builder模式的用途:主要是在创建某个对象时,需要设定很多的参数(通过setter方法),但是这些参数必须按照某个顺序设定,或者是设置步骤不同会得到不同结果。
    举个非常简单的栗子:
    常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
    在上述的栗子中,如果先调用了setNum,则会出现错误,使用Builder模式可以很好解决这个问题,如下所示:

常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
注意到,Builder类的setter函数都会返回自身的引用this,这主要是用于链式调用,这也是Builder设计模式中的一个明显的特征
3. 观察者模式
观察者模式面向的需求是:A对象(观察者)对B对象(被观察者)的某种变化高度敏感,需要在B变化的一瞬间做出反应。
常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
新闻里喜闻乐见的警察抓小偷,警察需要在小偷伸手作案的时候实施抓捕。在这个例子中,警察是观察者,小偷是被观察者,警察需要时刻盯着小偷的一举一动,才能保证不会漏过任何瞬间。
程序的观察者模式中,观察者不需要时刻盯着被观察者,而是采用注册(Register)或者称为订阅(Subscribe)的方式,告诉被观察者:我需要你的某某状态,你要在它变化的时候通知我。
Android中的事件触发与监听就是一种观察者模式,如下图:
常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
4. 工厂方法模式
定义:定义一个创建对象的接口,让子类决定实例化哪个类。
常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
5. 迭代器模式
定义:提供一种方法顺序访问一个容器对象中的各个元素,而不需要暴露该对象的内部表示。
例如Java中就有迭代器Iterator类,本质上说,它就是用迭代器模式。48
Android中最典型的就是Cursor用到了迭代器模式,当我们使用SQLiteDatabase的query方法时,返回的就是Cursor对象,通过如下方式去遍历:
常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记
6. 适配器模式
定义:把一个类的接口变成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
在Android中,比较典型的有ListView和RecyclerView。ListView使用适配器主要是,ListView只关心它的每个itemView,而不关心这个itemView具体显示的内容。ListView和数据源之间没有任何关系,这时候需要适配器提供getView方法给ListView使用。
7. 原型模式
原型模式就是将一个对象进行拷贝。对于类A实例a,要对a进行拷贝,就是创建一个跟a一样的类型A的实例b,然后将a的属性全部复制到b。
需要注意深拷贝和浅拷贝。深拷贝就是把对象里面的引用的对象也要拷贝一份新的对象,并将这个新的引用对象作为拷贝的对象引用。
Android中运用原型模式的例子:
常用的7种设计模式简单介绍 _ JavaClub全栈架构师技术笔记

参考资料:从Android代码中来记忆23种设计模式
给Android开发者的RxJava详解

作者:快乐肥柴
来源链接:https://blog.csdn.net/weixin_38196407/article/details/87253375

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42797.html

标签: 设计模式
分享给朋友:

“常用的7种设计模式简单介绍” 的相关文章

常用设计模式系列(二)—工厂方法模式

常用设计模式系列(二)—工厂方法模式

一、前言 hello各位小伙伴好,天气贼冷,多冻手,但是还是不能降低我编写设计模式讲解的热情。设计模式的魅力就像那冬天里的一把火,怎么也浇不灭; 上期讲解了简单工厂模式的应用场景及优缺点分析,今天开始我们的设计模式第二弹——工厂方法模式,其实工厂方法模式类似于简单工厂模式的一个升级...

炒冷饭系列:设计模式 工厂方法模式

炒冷饭系列:设计模式 工厂方法模式

炒冷饭系列:设计模式 工厂方法模式 摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 事虽险,吾善为;苟擅为,子道亏。物虽小,勿私藏;苟...

炒冷饭系列:设计模式 建造者模式

炒冷饭系列:设计模式 建造者模式

炒冷饭系列:设计模式 建造者模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 亲爱我,孝何难;亲恶我,孝方贤。 一、什么是建造者模式...

炒冷饭系列:设计模式 单例模式

炒冷饭系列:设计模式 单例模式

炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 亲爱我,孝何难;亲恶我,孝方贤。 一、什么是单例模式...

java多线程12种设计模式

1、Single Threaded Execution Pattern(单线程执行模式) 2、Immutable Pattern(不可变模式) 3、Guarded Suspension Pattern(防卫暂停模式) 4、Balking Pattern(止步模式...

《java编程思想》:设计模式(不定期更新)

1.策略设计模式   创建一个能够根据所传递的参数对象的不同而具有不同的方法,被称为策略设计模式。这类方法包含索要执行的算法中固定不变的部分,而“策略”包含变化的部分。策略就是传递进去的参数对象。在下面的代码示例中,Process对象就是策略。应用在了s上。 代码示例:...

单例设计模式线程安全问题

单例设计模式线程安全问题 懒汉式 class Lazy { private Lazy(){ System.out.println("test Lazy"); } private static Lazy lazy=null;...

java设计模式--单例模式

单例模式 单例模式在Java设计模式中属于非常重要的一种模式,意在保证一个类只有唯一一个实例,并且向整个系统提供一个访问它的全局访问点。   单例模式的特点 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。...

设计模式六大原则

设计模式六大原则

2019年2月26日19:41:21 设计模式六大原则 为什么会有六大原则 有言曰,“无规矩不成方圆”,有“规”才能画“圆”,那设计模式要遵循的六大原则要画一个什么的“圆”呢? 这里要从面向对象编程说起,从面向过程编程到面向对象编程是软件设计的一大步,封装、继承...

设计模式的分类

1.设计模式有两种分类 按目的型来分:1.创建型   2.结构型  3.行为型 一、 5种创建型模式:工厂方法模式,抽象模式,建造者模式,原型模式,单例模式   二、7种结构型模式:适配器模式,桥接模式,组...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。