再也不怕面试官问我设计模式使用场景了

本文概述了设计模式的7大原则,并详细介绍了创建型、结构型和行为型设计模式,包括单例模式、原型模式、适配器模式、观察者模式等,旨在帮助读者理解设计模式的基本原理和应用场景。
摘要由CSDN通过智能技术生成

前言

最近有很多同学想让我整理下关于设计模式的内容,今天就将设计模式的核心要掌握的设计模式它们的基本原理使用场景 简要述说一下。可能基础不是足够扎实的知道的没有这么全,不过也不影响各位编码。

个人认为设计模式只是一个方法论理论 供参考,让你能更好的、更方便的支撑业务,没必要花过多的功夫去写各种资料的demo 不然的话,相信我,用到项目中你还是不会信不信。

image.png

想学习更多关于 优美、高效、简洁 的代码写法,可以关注我的主页 代码设计优化专栏

设计模式 7 大原则

单一职责 : 每个类只负责一个职责(或每个方法)

接口隔离 : 一个类对另一个类的依赖应建立在最小的接口上 依赖倒转: 高层模块不应依赖低层模块, 二者都应该依赖接口而非细节. 细节依赖抽象, 面向接口编程

里式替换 : 子类应该做到可以替换父类, 及子类应尽量不重写父类方法. 开闭原则: 对提供者而已可以修改, 对使用者而言不需要修改(即代码兼容性), 尽量使用扩展增加功能, 而非修改原有类

迪米特法则 : 一个对象应该对其他对象保持最小了解(最少知道原则)

合成复用原则 : 一个类使用另一个类的代码(方法), 尽量使用合成, 而不是继承

一、创建型
1.1 单例模式

原理 : 确保一个类只有一个实例,并提供该实例的全局访问点。

饿汉式 : 静态常量 静态代码块

懒汉式

直接判断(线程不安全) 方法加 synchronized(线程安全, 效率低)

判断后再同步(错误写法)

双重判断(if-同步-if) (推荐写法)

匿名静态内部类 (简单, 推荐)

枚举(简单, 但对象方法写在枚举中, 略有不适)

示例:java.lang.Runtime#getRuntime()java.awt.Desktop#getDesktop()

1.2原型模式

原理 : 使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象. 示例: JavaObject 对象的 clone 方法, java.util.Arrays.ArrayList#toArray()

浅拷贝 : 仅对基础类型及字符串类型的字段拷贝值

深拷贝 : 同时对引用类型(如数组,对象) 也进行拷贝

深拷贝实现: 1.重写 clone, 一一处理每个引用对象(调用对象的clone), 麻烦, 且若对象之间关系复杂, 其

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值