
设计模式
文章平均质量分 92
神的孩子都在歌唱
csdn认证博客专家,本人还是小白,一起加油,微:chenyunzhiLBP ,公众号 chenyunzhishuai,关注我回复 领取学习资料 可领取python,java,计算机基础和算法资料
展开
-
行为设计模式 -责任链模式- JAVA
百度百科:责任链模式是一种行为设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。通过责任链方式可以找到能够处理客户端请求的对象。感觉就跟Switch 或者try-catch 一样,当前不匹配就继续往下匹配。● **抽象处理者(Handler)角色:**定义出一个处理请求的接口。原创 2024-10-23 22:18:06 · 1064 阅读 · 0 评论 -
行为设计模式 -命令模式- JAVA
在软件系统中,行为请求者与行为实现者通常呈现一种紧耦合。但在某些场合,比如要对行为进行记录、撤销/重做、事务等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将行为请求者与行为实现者解耦?将一组行为抽象为对象实现二者之间的松耦合。这就是命令模式(Command Pattern)。某个行为有多个对象执行,并且我们需要对这个行为进行一些监控等处理。那么我们就需要将这种行为抽象出来,这种就叫做命令模式。在命令模式中有如下角色:任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。原创 2024-10-24 23:27:54 · 1842 阅读 · 0 评论 -
行为设计模式 -观察者模式- JAVA
观察者模式是一种对象行为模式。又被称为发布-订阅(Publish/Subscribe)模式, 它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。观察者模式不仅被广泛应用于软件界面元素之间的交互,在业务对象之间的交互、权限管理等方面也有广泛的应用。这个模式在日常开发中很常见,比如a服务想要b服务磁盘满的时候通知它,那么它只需要把自己的。原创 2024-10-03 22:20:35 · 1705 阅读 · 0 评论 -
行为设计模式 -策略设计模式- JAVA
*百度百科:**策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。个人理解: 要完成一件事情,你可以选择多种方式的时候。定义策略设计模式是行为设计模式的一种。当我们对特定任务有多种算法并且客户端决定在运行时使用的实际实现时,使用策略模式。抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。原创 2024-09-29 23:15:14 · 1282 阅读 · 0 评论 -
行为设计模式 -模板方法模式- JAVA
模板方法是一种行为设计模式。模板方法设计模式用于创建方法存根并将某些实现步骤推迟到子类。模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构**的情况下,重新定义算法中的某些步骤。在面向对象程序设计过程中,我们常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。通俗理解,就是设计构建一个对象的时候,类的步骤已经固定了,可是某些类的实现逻辑。原创 2024-09-28 22:54:00 · 1919 阅读 · 0 评论 -
结构设计模式 -装饰器设计模式 - JAVA
百度百科装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。java在编译完成后,我们无法动态的去为一个编译好的对象新增或者修改某个功能,这时候就可以通过装饰模式去设计举例理解: 通常我们使用继承或者组合去扩展对象的行为,假如我们想要实现不同种类的手链,我们创建一个手链(Bracelet)接口,然后我们通过实现这个接口获取一个基本的手链(basic bracelet),我们可以在基本的手链的基础上进行扩展。原创 2024-09-23 11:02:24 · 1130 阅读 · 0 评论 -
结构设计模式 - 桥接设计模式 - JAVA
百度百科: 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(interface)模式。说实话,一开始我没法理解百度百科这句话,所以我找了几个案例文章学习,那么,我就拿最经常看到的绘制不同颜色的形状这个案例去理解吧。以下是网上看到的案例注意:以下的案例是反例现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系:我们可以发现有很多的不同形状颜色的类。原创 2024-06-16 23:12:40 · 1095 阅读 · 0 评论 -
结构设计模式 - 代理设计模式 - JAVA
代理模式的定义:**为其他对象提供一种代理以控制对这个对象的访问。**在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式就是需要我们创建一个可以方便两端沟通的桥梁,然后我们可以在这两端之间做一下控制,比如房产中介,比如火车站买票代理点等等。那么这个定义就非常清晰,当我们想要对提供功能的进行受访控制时,可以使用代理设计模式。(1)抽象(Subject)角色:通过接口或抽象类声明真实角色实现的业务方法。(2)代理(Proxy)角色。原创 2024-05-31 23:03:01 · 1422 阅读 · 0 评论 -
结构设计模式 - 组合设计模式 - JAVA
由不同的对象组合成一个整体,这种类型的设计模式就叫做组合设计模式。仅当对象组应表现为单个对象时才应应用组合模式。组合设计模式可用于创建树状结构。Component:定义系统各层次对象的共有方法和属性,它可以是一个接口或一个抽象类,可以预先定义一些默认行为和属性。Leaf:定义合成中元素的行为。它是组合和实现基本对象的构建块。它没有对其他对象的引用。Composite: 它由各个子对象(leaf元素)组成,并在基本组件中实现操作。比如图表是一种由圆形、三角形等对象组成的结构。原创 2024-03-14 21:56:44 · 664 阅读 · 0 评论 -
结构设计模式 -适配器设计模式 -Java
适配器设计模式在现实生活中很常见,比如我最近白嫖了一个老旧的显示屏,不过他是VGA接口,可是我的笔记本支持HDMI**,没有支持VGA接口,那么就是要一个转接头将他们连接起来,这个转接头就是本文说的**适配器图片来源于网络适配器设计模式是一种结构型设计模式,它允许接口不兼容的对象能够相互合作。适配器模式通常用于将一个类的接口转换为客户端期望的另一个接口。这种模式通常用于解决接口不兼容的问题。目标(Target)接口:这是当前系统业务所期待的接口,它可以是抽象类或接口。原创 2024-03-13 23:17:42 · 1350 阅读 · 0 评论 -
创建型设计模式 - 建造者设计模式 - JAVA
以下是百度百科对建造者模式的解释 :文章地址建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。解决问题当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同表示时。在这样的设计模式builder:为创建一个产品对象的各个部件指定抽象接口。:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。Director:构造一个使用Builder接口的对象。原创 2024-02-28 23:00:53 · 1335 阅读 · 1 评论 -
创建型设计模式 - 原型设计模式 - JAVA
原型模式提供了一种机制,可以将原始对象复制到新对象,然后根据我们的需要进行修改。原型设计模式使用java克隆来复制对象。原型模式的克隆分为浅克隆和深克隆。深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是指在进行对象复制时所产生的两种不同结果。深拷贝:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。浅拷贝:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。Java中的Object类中提供了clone()原创 2024-02-22 21:48:53 · 1117 阅读 · 0 评论 -
创建型设计模式 - 抽象工厂模式 - JAVA
看本片文章前,可以先看工厂设计模式,您会注意到我们有一个 Factory 类。该工厂类根据提供的输入返回不同的子类,工厂类使用 if-else 或 switch 语句来实现此目的。在抽象工厂模式中,我们摆脱了if-else 块,并为每个子类都有一个工厂类。然后是一个抽象工厂类,它将根据输入工厂类返回子类。并且工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。大白话可能没办法讲清楚,接下来会通过代码解释,这样就能很容易掌握和理解工厂模式和抽象工厂模式之间的细微差别。电脑抽象类/**原创 2023-12-28 22:29:50 · 1389 阅读 · 0 评论 -
创建型设计模式 - 工厂设计模式 - JAVA
当我们有一个带有多个子类的超类,并且根据输入,我们需要返回其中一个子类时,就会使用工厂设计模式。该模式将类实例化的步骤从客户端程序转移到工厂类。简单理解就是一个东西有多种不同的实现方式,你选择不同方式,最后的结果就会不一样工厂设计模式提供了接口而不是实现的代码方法。工厂模式从客户端代码中删除了实际实现类的实例化。工厂模式使我们的代码更加健壮,耦合性更低并且易于扩展。例如,我们可以轻松地更改 PC 类的实现,因为客户端程序不知道这一点。工厂模式通过继承提供实现类和客户端类之间的抽象。原创 2023-12-24 21:35:18 · 1212 阅读 · 0 评论 -
创建型设计模式 - 单例设计模式 - JAVA
单例模式(Singleton Pattern的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。原创 2023-12-24 21:33:30 · 1151 阅读 · 0 评论