设计模式绪论DesignPatterns暂记

几种最常用的设计模式 介绍几种最常用的设计模式,分为创建型、结构型和行为型三类。创建型模式:关注对象创建机制,增加代码的灵活性和可重用性。单例模式(Singleton)工厂模式(Factory)建造者模式(Builder)结构型模式:关注类和对象的组合,形成更大的结构。适配器模式(Adapter)装饰器模式(Decorator)外观模式(Facade)行为型模式:关注对象之间的通信和职责分配。观察者模式(Observer)策略模式(Strategy)命令模式(Command)下面我们分别详细讲解这些模式。 阅读详情

针对类的三要素对设计模式分为三类
构造方法new:创建型模式
成员变量 :结构型模式
成员方法 :行为性模式

重用设计和代码 :
继承,组合→框架(SSH,SSM)→定制软件

常用模式举例:
单例模式:确保一个类只有一个实例,且自行实例化。并向整个系统提供这个实例。

原型模式(prototype):
使用Object的克隆clone方法,clone方法是底层方法,直接复制内存中的数据而非使用构造方法(进一步的有浅拷贝和深拷贝,对于引用对象,浅拷贝和深拷贝的关系类似于指针和重新malloc(mamory allocation))

装饰器模式:
也是对象增强的,对比类的继承
类继承 : 静态 对子类的扩展
装饰模式:动态 对象即可

工厂模式:(一般情况下,对象的创建与使用没有分开)而工厂模式中工厂类根据参数创建不同的实例
工厂模式中有: 简单工厂,抽象工厂,建造者模式(抽象工厂模式+组装类(导演类)=建造者模式) (简单工厂不符合开闭原则)

代理模式:对原有对象的增强
接口:(声明真实对象和代理对象的公共接口)

public interface AB{ void CD();}

public class A implements AB{
public void CD(){一个输出语句}
}

public A代理 implements InvocationHandler{
private A a;

public A代理(A a){super();this.a=a;}

public Object invoke(Object proxy,Method method, Object[] args)throws Throwable{
可放一个前处理方法
Object ret = method.invoke(a,args);
可放一个后处理方法
return ret;
}
public Object getProxyInstance(){
return Proxy.newPeoxyInstance(a.getClass().getClassLoader,a.getClass.getInterfaces(),this);
}

}

实现,测试类:
public class implementCase{
public void main(String[] args){
A a=new A();
A代理 a代理 =new A代理(a);
A 代理人=(A) a代理.getProxyInstance();
代理人.CD();
}
}

一篇文章读懂六大设计模式 1、单例模式。2、工厂模式。3、装饰者模式。4、代理模式。5、观察者模式。6 、策略模式 阅读详情

相关推荐

hfss仿真软件入门教程

hfss仿真软件入门教程 1.模型建立 1.1在project种选择insert hfss design 1.2.在hfss-》solution type 中选择modal 1.3.在moderler-》中选择units 设置单温为mm 1.4进行画图操作,这里为提高效率直接导入一个已经画好的cad图。使用modeler-》import 2.设置端口 2.1在更改模型中的材料 选择需要更改材料...

xunshui2007的博客 3万+

七种常用的设计模式

常用的七种设计模式:单例模式、工厂方法模式、抽象工厂模式、代理模式、装饰器模式、观察者模式和责任链模式。设计模式分类设计模式根据工作的目的,分为创建型模式、结构型模式和行为型模式三类。创建型模式:单例模式、工厂方法模式、抽象工厂模式、创建者模式、原型模式。结构型模式:适配器模式、代理模式、装饰器模式、外观模式、桥接模式、组合模式、享元模式。行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。软件设计七大原则(OOP原则)

a154555的博客 8万+

TwinCAT3入门教程3——PLC程序变量定义和硬件IO关联

目录 1、IO输入输出变量定义和硬件关联 1.1 IO输入 1.2 IO输出 1.3 PLC变量和IO模块关联 1.4 测试IO输出点 2、伺服变量关联 1、IO输入输出变量定义和硬件关联 1.1 IO输入 添加全局变量IO_Global 变量定义 (*==========================================IO输入===============================================================*)

panjinliang066333的博客 1万+

10种常用设计模式

软件设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它的意义在于这些模式是众多程序员经过相当长的一段时间的试验和错误复盘所总结的宝贵经验,可以帮助我们提高代码的可重用性、可读性和可靠性。本文总结了 10 种经典的软件设计模式的特点、优缺点和应用场景,并给出了相应Go代码示例。

YouMing_Li的博客 3606

开关电源环路稳定性分析(01)-Buck变换器

这篇文章主要是根据Buck变换器的拓扑结构,利用欧姆定律,基尔霍夫定律,积分微分,这些我们所熟悉的理论推导出了开关电源输入和输出关系的表达式,我相信看完这篇文章,应该是可以自己推导一次。在后面的文章中,我们同样会按照这样的风格,尽量使用大家都已经掌握的知识,来一步一步的拆解晦涩难懂的环路稳定性的问题,在前面先把积木搭起来,后面综合分析的时候就不会显得那么困难!

D_Katter的博客 3832

SAP入门技术分享四:模块化程序

SAP入门技术分享三:模块化程序

ITxiaoangzai的博客 1152

Java 中的 23 种设计模式详解

项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

微笑听雨 7万+

GeoScene Pro教程(002):GeoScenePro基础操作

GeoScenePro基础操作介绍。

WwLK123的博客 2460

设计模式——单例模式、工厂模式

设计模式——单例模式、工厂模式

weixin_42643931的博客 1212

BDD测试用例:Playwright的MCP Server实战

Playwright MCP Server建立了大模型和真实的浏览环境之间的桥梁,可以让大模型操作多款浏览器完成测试任务。

Criss@陈磊 443

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2618

常见的23种设计模式总结

创建型模式:单例模式、建造者模式、工厂模式、原型模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式、过滤器模式。 行为型模式:模版模式(模版方法模式)、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式、访问者模式。

秃头的博客 6369

2️⃣ Coze创建智能体教学(2025年全新版本)

扣子平台提供强大支持,可将智能体轻松集成至各类社交平台,使智能体得以服务更为庞大的用户群体。当下支持集成的平台如下:​1️⃣豆包:作为聚焦 AI 内容创作的平台,非常适合发布充满创意、娱乐性强的智能体。​2️⃣飞书:适合发布用于办公协作的智能体,助力团队提升工作效率。​3️⃣微信:借助公众号或小程序的形式,能够服务海量微信用户。​4️⃣抖音:适合发布与短视频相关的智能体,为用户提供创意与娱乐服务。​

李同学Lino的博客 4574

Java七种常用设计模式

抽象工厂模式(Abstract Factory Pattern)是Java中常用的一种创建型设计模式,它提供了一种创建一系列相关或相互依赖的对象接口,而无需指定它们具体的类。抽象工厂模式和工厂方法模式类似,不同之处在于抽象工厂模式中工厂类不单独生产一种产品,而是生产一系列相关的产品。定义抽象产品类:void use();定义具体产品类:System . out . println("使用ProductA1");System . out . println("使用ProductA2");

qq_45196093的博客 2万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【设计模式】常用的10种设计模式

收录一些自己在开发过程中比较常用的模式,整理出来以便自己梳理和复习,从而熟能生巧,举一反三。下面只列出模式的脉络大纲,取最核心的逻辑进行讲解。

Kard的博客 2274

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java中常用的5种设计模式

【代码】java业务开发中常用的5种设计模式。

qq_41659974的博客 5789

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

盘点常用的九种设计模式

常用设计模式简析

txwy12的博客 2414

Java面试:设计模式常见面试题汇总

答:单例模式是一种常用的软件设计模式,在应用这个模式时,单例对象的类必须保证只有一个实例存在,整个系统只能使用一个对象实例。优点:不会频繁地创建和销毁对象,浪费系统资源。使用场景:IO 、数据库连接、Redis 连接等。单例模式代码实现:解释单例模式调用代码:解释程序的输出结果:true可以看出以上单例模式是在类加载的时候就创建了,这样会影响程序的启动速度,那如何实现单例模式的延迟加载?在使用时再创建?单例延迟加载代码:解释以上为非线程安全的,单例模式如何支持多线程?

m0_67537062的博客 5094

常用的32种设计模式

发布-订阅模式(Publish-Subscribe Pattern):定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。以后就可将该对象恢复到原先保存的状态。访问者模式(Visitor Pattern):表示一个作用于某个对象结构中的各元素的操作,它使您可以在不改变各元素类的前提下定义作用于这些元素的新操作。适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

最后一个bug的博客 2896

常见的设计模式

java设计模式

m0_72560900的博客 364

常见的23种设计模式

抽象工厂模式是一种类似于工厂方法模式的设计模式,但它不仅可以创建单个对象,还可以创建产品族。

藜笙的博客 3355

11种常用的设计模式

装饰模式是动态地给一个对象添加一些额外额职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式是为已有功能动态地添加更多功能的一种方式。当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有的类的核心职责或主要行为。新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。装饰模式提供了一个非常好的解决方案,把每个要装饰的功能放在单独的类中,让这个类包装它所要装饰的对象。

竹林幽深 841

史上最全23种设计模式最详细介绍

例子:公司领导一般都是项目经理、副总经理、总经理、财务、财务主管、董事长、技术主管,这里每个人都是一个能处理请求的对象,但是有些请求就只能一个对象来处理,就比如说当有一个面试者来面试的时候,项目经理先接受面试的请求,但是发现自己没办法面试,所以交给技术主管,技术主管发现自己能面试,所以这个请求指挥到技术主管这里,而这个链就是责任链。就是当我们在创建一个A类之后,又创建了不同状态类B、C、D都实现接口E,当我们在A类中引入接口E,当我们在传入BCD三个不同的类时,A类的行为是不一样的这就是状态模式。

weixin_46114448的博客 3396

Java常用设计模式(23种)

Java23种设计模式

weixin_52962125的博客 2809

跟我学Java设计模式第6天:行为型设计模式汇总源码

6,行为型模式 6.5 状态模式 6.5.1 概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。 类图如下: 代码如下: public interface ILift { //电梯的4个状态 //开门状态 public final static int OPENING_STATE = 1;

黑马程序员官方博客 498
上一篇: android html解析
下一篇: Spring笔记001
FakeOccupational
博客等级 码龄6年 2万+粉丝 1727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值