设计模式总结

本文详细介绍了设计模式中的三大类别——创建型、结构型和行为型模式,包括它们各自的基本概念和应用场景。通过一系列生动的故事,阐述了每个模式的核心思想,如简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、单例模式、原型模式、适配器模式、装饰器模式、桥接模式、外观模式、代理模式、享元模式、组合模式、状态模式、责任链模式、访问者模式、命令模式、解释器模式、观察者模式、策略模式、模板方法模式、备忘录模式、迭代器模式和中介者模式。这些模式遵循设计原则,如单一职责原则、开闭原则、里氏替换原则、迪米特原则和接口隔离原则,旨在提高代码的可维护性和可扩展性。
摘要由CSDN通过智能技术生成

1. 设计原则

  • 单一职责原则:一个对象或者一个方法只做一件事
    • 能够降低实体的复杂度,便于维护和拓展
    • 提高实体的可读性
    • 改动代码的风险降低了,也不会牵一发而动全身
  • 开闭原则:一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭
    • 不会改变原有功能,从而引发故障
  • 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象
    • 为继承定义了规范,实现更好的继承
  • 迪米特原则:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。
    • 降低了类之间的耦合度,提高了模块的相对独立性。
    • 由于耦合度降低,从而提高了类的可复用率和系统的扩展性。
    • 过度使用会造成系统产生大量的中介类,从而增加系统的复杂度
  • 接口隔离原则:客户端不应该依赖它不需要的接口、类间的依赖关系应该建立在最小的接口上
    • 接口隔离提高了系统的内聚性,减少了对外交互,降低了系统的耦合性。
    • 将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。
    • 能减少项目工程中的代码冗余
  • 依赖倒置原则:上层模块不应该依赖底层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
    • 降低模块之间的耦合,同时便于功能的扩展

2. 设计模式

2.1 创建型模式

2.1.1 简单工厂模式

将创建对象的过程使用对象工厂封装起来,从而屏蔽了产品实现的具体细节,实现了代码层面的解耦,还减少了代码量。
简单工厂模式为每种对象创建一个工厂,通过传入参数实现生产,但这在一定程度上还存在调度和被调用之间的耦合。
故事1:我来到4S店来买车,**我说:“老板,给我来辆奥迪”。老板去汽车厂里调了一台奥迪来了,我又说,来一辆宝马,老板又去宝马车厂里调了一台宝马来了。**我又准备说,老板说等等,我好累,让我歇会。

2.1.2 工厂方法模式

工厂方法模式将工厂抽象化,通过在生产工厂类时就指定创建的对象,进一步降低了耦合,形成工厂—产品一一对应的模式,因此满足了“开放-封闭”原则。

故事2:老板嫌这样太麻烦了,每次都要我说他才去找人,老板说:小伙子你要啥车,我直接带你去汽车厂,你爱咋看咋看。就这样,我逛了两个汽车厂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值