GOF23设计模式【更新ing】

开始暑期学习新篇章标题

一、设计模式概述

1.1 设计模式定义

用来解决软件设计中常见的问题。它们像是经验丰富的老手总结出来的“诀窍”,可以让你更轻松地写出好的、易维护的代码。每个模式都像一个蓝图,您可以自定义以解决代码中的特定设计问题。
而且,设计模式并不是一种死板的规定,而是一种思维模式,你可以根据自己的情况和需求来运用它们。设计模式通常包括了问题的描述、解决方案的结构、使用场景以及相应的优缺点。
常见的设计模式按照目的可以分为创建型模式、结构型模式和行为型模式。
创建型模式:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模
式。
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模
式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

1.2 设计模式7大原则

原则 描述
单一职责原则 一个类应该只负责一项职责,只有一个引起它变化的原因。
开闭原则 软件实体应该是可扩展的,而不可修改的。
里氏替换原则 所有引用基类的地方必须能透明地使用其子类的对象。
依赖倒置原则 高层模块不应该依赖于底层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。
接口隔离原则 不应该强迫客户端依赖于它们不用的接口。
迪米特法则 一个对象应该对其他对象有尽可能少的了解。
合成复用原则 尽量使用对象组合,而不是继承来达到复用的目的。

1.3 设计模式的重要性

  • 提高代码质量和可维护性:可以使代码更加清晰、结构化,易于理解和维护。
  • 加速开发过程:可以避免重复造轮子,减少开发时间。
  • 增强代码的灵活性和可扩展性,降低维护成本:良好的设计模式,在项目不断扩大时,模块依旧易于理解、修改和扩展。

二、创建型设计模式

详细介绍单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。

单例模式

确保一个类最多只有一个实例,并提供一个全局访问点。
故事开始于一个小镇,这个小镇上有一个叫做老王的,他有7-8个老婆。他的每一个老婆要干活的时候都会喊他过去干。他的每一个老婆对外宣称他们自己的老公的时候指的是同一个老公。

  • 实现方式:懒汉模式,饿汉模式

【饿汉式 】的话对象直接被创建,如果对象很大,而一时半会又没被用上,就会导致内存空间的浪费;懒汉的话不会导致内存空间的浪费,被用上了我才创建,但实现一般都较为复杂。
[单例模式]懒汉式加载 :时间换空间

public class C01_Singleton {
    

    private C01_Singleton (){
   }
    /*
     * 1. 存在线程安全问题
     * 同样是私有化构造和静态成员变量的形式,但赋值操作被推迟到了getInstance(),只有第一次调用getInstance()时才会创建对象,
     * 但这显然是线程不安全的,多线程下可能导致instance被多次重新赋值。
     */
    private static C01
  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小源同学r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值