java常用设计模式总结

本文总结了设计模式的基本概念,探讨了为何使用设计模式,介绍了设计模式的七大原则,并详细讲解了创建型、结构型和行为型设计模式,包括单例模式、工厂模式、装饰模式、代理模式等,旨在提升代码的可重用性和可读性。
摘要由CSDN通过智能技术生成

设计模式了解

什么是设计模式?

设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。

为什么使用设计模式

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性以及代码的结构更加清晰.

设计模式的7大原则

1、单一职责原则
一个类只负责一项职责。
2、接口隔离原则
一个类对另一个类的依赖应该建立在最小接口上。
在这里插入图片描述
在这里插入图片描述
3、依赖倒转原则
①高层模块不应该依赖底层模块,二者都应该依赖其抽象
②抽象不应该依赖细节(实现类),细节应该依赖抽象
③依赖倒置的中心思想是面向接口编程,使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。

依赖传递的方式:
接口传递
构造方法传递
setter方法传递

  • [ ] 详细说明

4、里氏代换原则(Liskov Substitution Principle
子类中尽量不要重写父类的方法。如果重写,可以将父类中要重写的方法提取到新的类,两个类同时继承新的类,这样做可以降低耦合性。
5、开闭原则(Open Close Principle)
在程序需要进行拓展的时候,不能去修改原有的代码,实现一个优化的效果。对扩展开放,对修改关闭。
6、迪米特法则(最少知道原则)(Demeter Principle)
一个类对自己依赖的类知道的越少越好。被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供public方法之外,不对外泄露任何信息。
7.合成复用原则
原则是尽量使用合成/聚合的方式,而不是使用继承。

设计模式分类

有23种,三大类设计模式。

创建型模式(用于解耦对象的实例化过程): (5种)
单例模式抽象工厂模式、建造者模式、工厂模式、原型模式。

行为型模式(对象的功能): (7种) 把。
适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式

结构型模式(对象的组成): (11种)
模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

设计模式详细介绍

创建型

1、单例模式

这个类只能有一个实例,提供全局访问
私有构造方法,私有静态对象,提供公有静态getInstance()方法获取实例。

饿汉:不管需不需要都先创建好(浪费空间)
静态常量
public class Student {
   
	private Student() {
   }
	private static Student s = new Student();
	public static  Student getInstance() {
   
			return s;
	}
}
静态代码块
public class Student{
   
	private Student(){
   };
	private statice Student s;
	static{
   
		s=new Student();
	}
	public static Student getInstance() {
   
			return s;
	}
}
懒汉:需要的时候再创建实例
线程不安全
public class Student {
   
	private Student() {
   }
	private static Student s =null ;
	public static  Student getInstance() {
   
		if(s==null) {
   
			s = new Student();
		}
		return s;
	}
}
同步方法(不管是否实例化都加锁,会影响效率)
public class Student {
   
	private Student() {
   }
	private static Student s =null ;
	public static  synchronized  Student getInstance() {
   
		if(s==null) {
   
			s 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值