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

java设计模式

时间:2023-12-20 17:55:07浏览次数:34  
标签:java 定义 对象 模式 一个 实例 设计模式

三大种类型的设计模式

创建型模式:关注对象的创建过程。
结构型模式:关注对象与类的组织模式
行为型模式:关注对象之间的交互

23种设计模式

简单工厂模式

定义:根据参数的不同返回不同类的实例。

工厂方法模式

定义:通过工厂子类来确定究竟应该实例化哪一个具体产品类

例子:日志记录器

抽象工厂模式

定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类

定义:产品族和产品等级结构

建造者模式

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

原型模式

定义:用原型实例指定创还能对象的种类,并且通过复制这些原型创建新的对象。

单例模式

定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类提供全局访问方法。

适配器模式

定义:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。

桥接模式

定义:将抽象部分与实现部分分离,使它们都可以独立地变化。

组合模式

定义:组合多个对象形成树形结构,以表示“部分——整体”的结构层次。

例子:一个公司,只有一个老板管三个经理管十个员工。

装饰模式

定义:动态地给一个对象增加一些额外的职责。

外观模式

定义:为子系统中的一组接口提供一个统一的入口。

例子:网站的首页有很多子网页。

享元模式

定义: 运用共享技术有效地支持大量细粒度对象的复用。

代理模式

定义:给某一个模式提供一个代理,并由代理对象控制对原对象的引用。
例子:远程操控

职责链模式

定义:使多个对象都有机会处理请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理为止,避免请求的发送者和接收者之间的耦合关系。

命令模式

定义:将一个请求封装为一个对象,从而使我们可以使用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及可撤销的操作。

解释器模式

定义:定义语言的文法,并且建立一个解释器来解释该语言中的句子。
例子:加减乘除的符号在界面上无意义,需要后端解释前端的符号意义。

迭代器模式

定义:提供一个方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标。

例子:电视遥控器可以遍历电视机的电视频道的集合,不需要关心频道如何存储到电视机中

中介者模式

定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

备忘录模式

定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

观察者模式

定义:定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。

例子:股票和股民,股票一飘绿,股民集体跳楼

状态模式

定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。

标签:java,定义,对象,模式,一个,实例,设计模式
From: https://www.cnblogs.com/yzx-sir/p/17917153.html

相关文章

  • java lambda表达式
    一、函数式编程思想 二、lambda表达式1、lambda表达式的标准格式2、匿名类型和lambda表达式对比 示例:  3、lambda表达式的省略模式 示例: 4、lambda表达式的注意事项 示例: 5、lambda表达式和匿名内部类的区别 示例: ......
  • java网络编程
    一、网络编程入门1、网络编程概述 2、网络编程的三要素 3、IP地址  InetAddress类示例: 4、端口5、协议  二、UDP通信程序1、UDP通信原理2、UDP发送数据 示例:packagecom.itbianma01;importjava.io.IOException;importjava.net.*;pu......
  • Java登陆第二十六天——Http
    Http是一种基于TCP/IP的协议。相同的,它有客户端和服务端。Http的交互方式客户端向服务端发送的总是请求;服务端向客户端返回的总是响应Http的版本HTTP/0.9:初代目单行HTTP,只能返回一个HTML页面HTTP/1.0:二代目每次请求和响应都会建立和关闭一次连接(短链接)新增了三种......
  • Java IO 模型
    IO是个啥IO,是input/output的缩写,表面意思是输入/输出,描述计算机中数据流动的过程,实际上就是CPU、内存和外部进行数据交换的过程举个例子,某个进程要获取到数据的过程如下:1.请求:进程请求外部数据2.准备:缓冲区准备数据,通过磁盘或者网络读取数据到内核空的缓冲区3.拷贝:将数......
  • Java中“100==100”为true,而"1000==1000"为false?
    前言今天跟大家聊一个有趣的话题,在Java中两个Integer对象做比较时,会产生意想不到的结果。例如:Integera=100;Integerb=100;System.out.println(a==b);其运行结果是:true。而如果改成下面这样:Integera=1000;Integerb=1000;System.out.println(a==b);其运行......
  • 小谈设计模式(26)—中介者模式
    (小谈设计模式(26)—中介者模式)专栏介绍主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。中介者模式中介者模式(MediatorPattern)是一种行为型设计模式,它通过将对象之间的通信......
  • 秦疆的Java课程笔记:79 异常 自定义异常及经验小结
    使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。(秦疆老师:用的不多,但开源框架或者大型系统会用到。)用户自定义异常类,只需要继承Exception类即可。自定义异常类的步骤:创建自定义异常类在方法中通过throw关键字抛出异常对象......
  • 设计模式—代理模式
    介绍代码接口创建接口ImagepublicinterfaceImage{voiddisplay();}实体类创建实体类RealImagepublicclassRealImageimplementsImage{privateStringfileName;publicRealImage(StringfileName){this.fileName=fileName;......
  • 设计模式—观察者模式
    介绍代码观察者父类只有一个属性subject表示订阅的主题。update方法用于更新观察者本身publicabstractclassObserver{protectedSubjectsubject;publicabstractvoidupdate();}主题类主题类Subject直到自己的订阅者们,每当主题状态改变的时候就......
  • Java学习之apache poi操作Excel文件
    创建Java项目,然后加入Maven依赖如下:读取指定的Excel文件写入既存的Excel文件 创建新的Excel,添加文件内容......