设计模式1

一、七大原则

  1. 开闭原则:对代码扩展开放,对修改关闭。
  2. 里氏代换原则:子类重写父类方法应尽可能的扩展父类功能,但不能修改原有功能。是对开闭原则的补充
  3. 单一职责原则:一个类负责单一的职责。
  4. 依赖倒转原则:面向接口编程,依赖于抽象而不是具体实现。比如Service包和ServiceImpl,Mapper和MapperImpl
  5. 接口隔离原则:类与类的依赖关系应建立再最小的接口数量上。比如一个类实现一个接口,只用到了一个接口方法,但需要重写所有的接口方法,这样是不行的。
  6. 合成/聚合复用原则:尽量使用合成,而不是继承达到复用的目的。
  7. 迪米特法则(最少知道原则):一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

二、单例模式——创造性模式

概念:每个类只产生一个实例。
实现方式

1.懒汉模式
class LazySingleton{
	//构造方法写成私有的,保证处内部方法外,在外部无法new出对象
	private LazySingleton(){}
	private volatile static  instance = null;
	public static LazySingleton getInstance(){
		if(instance == null){
			synchronized(LazySingleton.class){
				if(instance == null){
					instance = new LazySingleton();
				}
			}
		}
	}
}
2. 饿汉模式
//立即加载就会使用类,不管有没有,先new出来
class HungrySingleton{
	//构造方法写成私有的,保证处内部方法外,在外部无法new出对象
	private static final instance = new instance;
	private HungrySingleton(){}
	public static LazySingleton getInstance(){
		if(instance == null){
			return instance;
		}
	}
}

三、工厂方法模式——创造性模式

1.简单工厂——不是设计模式只是书写习惯,下面两个是工厂模式

在不暴露生成逻辑的前提下生成一个实例。
在这里插入图片描述

2.工厂方法

提供一个生产逻辑移交给子类。
在这里插入图片描述

3.抽象工厂

工厂内只有单个产品的时候,就是工厂方法模式。如果有多个产品就是抽象工厂。
在这里插入图片描述

四、模板方法模式——行为型模式

在这里插入图片描述模板方法模式是类的行为模式。 准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑

比如HttpServlet,你需要重写doGet(),doPost(),会去service方法中调用doget(),dopost()。才能成功调用逻辑。

五、责任链模式——行为型模式

在这里插入图片描述

是类的行为模式。为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。
Tomcat中的Filter就是使用了责任链模式

六、代理模式——结构型模式

在这里插入图片描述

1.静态代理

代码层面,编译器的代理。
在这里插入图片描述

2.动态代理

运行时的 代理对象做代理。
在Spring里面有讲述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)在接收端可以基于想干解调或非相干解调还原数字基带信号+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值