首页 > 编程语言 >java设计模式回忆录

java设计模式回忆录

时间:2024-04-09 15:48:41浏览次数:31  
标签:回忆录 java 原则 对象 模式 改变 接口 设计模式

java设计模式

一.概念:在软件开发过程中的,经过验证的,在特定环境下重复发生特定问题的解决方案

二.原则:OOP七项原则

solid五项:功能的单一职责原则、开闭原则(便于扩展)、里氏替代原则(子类内代替父类)、接口隔离原则、依赖导致原则(依赖接口)

迪米特原则(最小知道原则)、合成复用原则(用组合而非继承)

三.分类 :

创建型模式:主要用于生成对象

结构型模式:组合类或对象以获得更大的结构

行为型模式:主要用于类或对象交换信息用

四.创建型模式

1.原型模式:以原来对象确定种类,并拷贝原对象以获得新对象。

2.单例模式:一个类只有一个实例,并提供一个全局访问点。一般用于读取配置,例外:spring实例一般就是它

常见:饿汉模式、懒汉模式(同步锁或带volatil的双重检测)、类级内部类(也叫静态内部类)、单例

3.工厂方法:创建对象的接口,让子类决定用那个类。同一类型产品。如:导入或导出多格式(pdf\excel\csv\txt)功能的前半段,从初始化的map<文件后缀, 具体实现>取对应实现类运行

4.抽象工厂:创建一系列相关或相互依赖的接口,而不用关注具体实现。主要是针对对象间有关联,如:汉堡 热+辣组合或冷+甜的组合

5.生成器模式:主要是将对象的创建过程与具体实现相分离

五.结构型模式

1.外观模式:提供高层接口,为子类的一系列接口提供统一的界面,方便操作。

2.桥接模式:主要是将抽象与具体实现分离。如:不同通信设备(手机、电脑)发送不同方式(qq\短信)的信息,这种交叉相关的情况。

3.组合模式:将树的结构以“整体-局部”d

4.装饰器模式:在不改变对象的前提下,改变对象的行为。java的io流就是使用这个的大户

5.适配器模式:是不能兼容的新方式能够使用原方式运作下去

6.代理模式:为其他对象提供代理以访问对象。mybatis中plugin的关键技术、接口与mapper关联技术

7.享元模式:使用共享技术支持大量细粒度的对象。字符常量池\guava的intern

六.行为型模式

1.观察者模式:提供一种一对多的关系结构,当一种对像状态改变,其他监察的对象及时收到通知并做出改变。

2.策略模式:主要是将不同的算法使用同一种方式使用。如:针对不同人群使用不同的打折策略

3.迭代器模式:提供一种统一的顺序访问聚合对象的方式。Collecton里面多得是

4.命令模式:主要是将不同的命令请求封装,使之可以相同方式处理

5.模板方法模式:主要是是将算法与实现相分离。

6.状态模式:在不改变类的对象的情况下,状态的改变,像改变的行为。

7.职责链模式:将请求处理绑定到一条链上,当请求到来时找合适处理。mybatis中插件拦截器

8.中介者模式:封装中介者用于对象的交流。

9.备忘录模式:在不改变类的对象的情况下,保存对象的状态在外部对象,当想要恢复时回退即可。

10.解释器模式:提供一种语言、语法,使用解析器解析这种语句。

11.访问者模式:不改变对象的前提下,可以改变对象的行为

标签:回忆录,java,原则,对象,模式,改变,接口,设计模式
From: https://www.cnblogs.com/Phneas/p/18124104

相关文章

  • java计算机毕业设计元气花艺小程序【附源码+远程部署+程序+mysql】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景在现代社会中,随着生活节奏的加快和城市化进程的推进,人们越来越渴望亲近自然、缓解压力。花艺作为一种艺术形式和生活方式,因其独特的审美价值和情感表达功......
  • java计算机毕业设计基于微信小程序的疫情封闭小区自助采购系统【附源码+远程部署+程序
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在新冠疫情的持续影响下,全球范围内的居民生活受到了前所未有的挑战。为了防控疫情的扩散,许多国家和地区不得不采取了封闭管理的措施,限制人员的流动和聚集......
  • java计算机毕业设计基于微信小程序的瑜伽馆约课系统【附源码+远程部署+程序+mysql】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:基于微信小程序的瑜伽馆约课系统开发在现代都市生活的快节奏中,人们越来越注重身心健康与内在平衡。瑜伽作为一种集身体锻炼、心理放松与精神修养于一体的活动......
  • java stream流 获取最后一条数据
    JavaStream流获取最后一条数据在Java中,Stream是一种用于处理集合数据的抽象概念。Stream提供了一种函数式编程的方式来操作数据,可以通过一系列的操作来处理集合中的元素。本文将介绍如何使用JavaStream流获取最后一条数据。什么是JavaStream流JavaStream是Java8中引入的一......
  • java 对Map<String, Object>遍历
    在Java中,你可以使用多种方法来遍历Map<String,Object>。以下是一些常见的方法:使用Map.Entry和IteratorjavaMap<String,Object>map=newHashMap<>();//添加一些键值对到map中Iterator<Map.Entry<String,Object>>iterator=map.entrySet().iterator();while(iterator.ha......
  • JavaSE笔记10数组入门
    数组的入门概念数组属于引用数据类型,其父类是Object数组可以容纳多个元素。(数组是一个数据的集合)数组可以存储基本和引用数据类型数组是引用类型,所以存储再堆内存中数组不能直接存储Java对象,但是可以存储其引用(内存地址)分类一维数组二维数组多维数组二维数组本质......
  • java 版本企业招标投标管理系统源码+多个行业+tbms+及时准确+全程电子化
    项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性......
  • 再探Java为面试赋能(二)Java基础知识(二)反射机制、Lambda表达式、多态
    文章目录前言1.4反射机制1.4.1Class对象的获取1.4.2Class类的方法1.4.3通过反射机制修改只读类的属性1.5Lambda表达式1.5.1函数式接口1.5.2Lambda表达式的使用1.6多态1.6.1多态的概念1.6.2多态的实现条件1.6.3重载(Overload)和重写(Override)前言往期精选......
  • java计算机毕业设计医院挂号系统小程序【附源码+远程部署+程序+mysql】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着信息技术的飞速发展,传统的医院挂号方式已逐渐不能满足现代社会对医疗服务效率和质量的要求。长期以来,患者在医院现场排队挂号不仅耗时耗力,还可能因等......
  • 8.Java常用类
    文章目录1.String1.1String的特性1.2String对象创建1.2.1字符串的特性1.2.2intern()1.2.3String使用细节1.3String常用方法1.4String类型转换1.4.1String与包装类1.4.2String与char[]数组1.4.3String与Byte[]数组2.StringBuffer与StringBuilder2.1字符串......