首页 > 其他分享 >设计模式

设计模式

时间:2023-03-06 16:55:39浏览次数:35  
标签:原则 对象 接口 模式 基类 设计模式 Principle

设计原则 solid

1、开闭原则(Open Close Principle)

开闭原则的意思是:对扩展开放,对修改关闭。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则是面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

3、依赖倒转原则(Dependence Inversion Principle)

这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

5、迪米特法则,又称最少知道原则(Demeter Principle)

最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、单一职责原则(Single-Responsibility-Principle)

一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化。

设计模式分类:

1.创建型

  • 工厂方法模式

对象的实例化方法由对应的对象工厂提供.

简单工厂:spring bean工厂

抽象工厂

  • 单例模式

一个类在系统中只拥有一个对象

  • 原型模式

以一个对象为模板,用于快速创建新对象

浅克隆/深克隆

  • 构建者模式

2.结构型

  • 享元模式

重要的系统资源重复利用: 线程池,连接池,对象池各种池技术,如Integer 的缓存,String

  • 适配器模式

A系统需要使用a接口的对象,但是现在只能提供b接口的对象,适配器实现a接口将b对象的功能进行转化提供A系统使用.

例如mysql数据库java驱动

  • 代理模式

需要隐藏真实对象,并且实现某些方法的增强.代理模式分静态代理 & 动态代理

动态代理:jdk动态代理,基于接口的实现;cglib动态代理:基于继承方式

spring aop 日志 缓存 事务等

  • 装饰器模式

允许向一个现有的对象添加新的功能,同时又不改变其结构,例如java的各种流操作

  • 模板方法模式
  • 组合模式

菜单,树形结构

  • 外观模式

统一的变化,例如各种皮肤

  • 桥接模式

一个对象有多个维度的变化,可以把这几个维度抽象

3.行为型

  • 备忘录模式

对对象的某个时刻的状态保存.例如游戏的存档

  • 责任链模式

将一个请求从链的首端发出,沿着链的路径依次传递每个节点对象,直到有对象处理这个请求为止. 具体实现如:spring的filter,OKHttp3框架及Netty NIO框架也都使用了责任链模式设计

  • 命令模式
  • 状态模式
  • 解释器模式

具体实现如虚拟机的解释器,sql解析

  • 中介者模式
  • 策略模式

通过使用不通的策略来实现具体的操作逻辑. 如线程池拒绝策略,微服务ribbon的路由策略

  • 观察者模式

一个对象的变化可通知到其他对象, 典型的案例是mq消息中间件

  • 迭代器模式

集合类可迭代内部元素,jdk中的集合类使用此模式

  • 访问者模式

提供了一个系统的统一访问,实现的典型案例:api网关

 

标签:原则,对象,接口,模式,基类,设计模式,Principle
From: https://www.cnblogs.com/jiaqirumeng/p/17184474.html

相关文章

  • Book-深入设计模式-享元模式
    Book-深入设计模式-享元模式https://refactoringguru.cn/design-patterns/flyweight享元模式亦称:缓存、Cache、Flyweight享元模式是一种结构型设计模式,它摒弃了在每......
  • 设计模式
    设计模式1.修饰器模式2.模板设计模式......
  • 设计模式
    设计模式设计模式+反射+泛型+注解/配置文件等单例模式最简单,考的最多的一个设计模式要点(1)构造器私有化(2)在本类中创建这个唯一的实例分类//饿汉式/......
  • 前端设计模式——工厂模式
    前端中的工厂模式是一种创建对象的设计模式,它可以让我们封装创建对象的细节,我们使用工厂方法而不是直接调用new关键字来创建对象,使得代码更加清晰、简洁和易于维护。在前......
  • 计算机基础_设计模式
    熟练使用前端常用的设计模式编写代码如单例模式、装饰器模式、代理模式等 发布订阅模式和观察者模式的异同以及实际应用一、定性区别首先,观察者是经典软件设计模式中......
  • 设计模式
    软件设计师:23种设计模式 总图创建型设计模式1.抽象工厂方法模式#代码packagenwnu.sun.patterns.createtype.abstractfactory;/***抽象工厂设计......
  • 设计模式-javascript实现【迭代器模式】
    定义:迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之......
  • Book-深入设计模式-适配器模式
    Book-深入设计模式-适配器模式https://refactoringguru.cn/design-patterns/adapter适配器模式亦称:封装器模式、Wrapper、Adapter适配器模式是一种结构型设计模式,它......
  • Book-深入设计模式-单例模式
    Book-深入设计模式-单例模式https://refactoringguru.cn/design-patterns/singleton单例模式亦称:单件模式、Singleton单例模式是一种创建型设计模式,让你能够保证一个......
  • Book-深入设计模式-原型模式
    Book-深入设计模式-原型模式https://refactoringguru.cn/design-patterns/prototype原型模式亦称:克隆、Clone、Prototype原型模式是一种创建型设计模式,使你能够复制......