设计模式总结

本文详细介绍了设计模式的概念、使用时机、六大原则,包括开闭原则、里氏替换原则等,并列举了常见的设计模式,如工厂方法、单例、适配器、装饰器、观察者等,旨在帮助开发者理解和应用设计模式,提升软件的可扩展性和可维护性。
摘要由CSDN通过智能技术生成

设计模式

  • 什么是设计模式
  • 什么时候使用设计模式
  • 设计模式六大原则
  • 常见设计模式

什么是设计模式

设计模式是软件开发人员在软件开发过程中面临一般问题使用的解决方案。设计模式是在软件开发过程中反复积累经验的总结。一般在Java中使用居多,也可称为面向对象设计模式。

什么时候使用设计模式

笔者认为任何时候都需要先考虑设计模式,因为设计模式可以达到易扩展,易维护,可重用,易理解等优点。但并非所有场合都使用,比如为一个简单的场合或者演示场景设计一个复杂的设计模式将毫无意义。

学习中看到网友一句话觉得很好:学习,然后全部忘记。熟练理解了设计模式,不用刻意的去设计也会用出最适宜的设计模式。

实际上有网友对Java的设计语言有一定偏见,认为好的语言不会产生那么多设计问题,由此产生如此多设计模式,认为需要语言进行原生实现。
笔者认为编程语言没有好坏,学习设计模式未必不是件好事,当编程语言为你封装了设计模式,而你并不清楚,不是也很悲哀。

设计模式六大原则

  • 开闭原则(Open Close Principle)

    对扩展开放,修改关闭。实现热插拔

  • 里氏替换(Liskov Substitution Principle)

    里氏替换是面向对象设计原则之一。任何父类可以出现的地方,子类都可以出现

    面向对象设计原则:单一职责,开放封闭,里氏替换,接口隔离,依赖倒置

  • 依赖倒置(Dependence Inversion Principle)

    是开闭原则的基础,依赖抽象而不依赖具体

  • 接口隔离(Interface Segregation Principle)

    使用多个隔离的接口,代替使用单个接口。降低类之间的依赖和耦合度

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

    一个实体尽量少于其他实体发生相互作用,达到模块之间相互独立

  • 合成复用(Composite Reuse Principle)

    尽量使用聚合/耦合,少用继承

常见设计模式

  • 创建型模式:对象如何来

  • 结构型模式:对象之间的关系

    • 适配器模式(Adapter Pattern):适配不兼容接口

    • 桥接模式(Bridge Pattern):抽象部分与实际部分分离

    • 组合模式(Composite Pattern):将对象组合成属性结构来表示部分与整体的层次结构

    • 装饰器模式(Decorator Pattern):动态的给一个对象添加一个额外的职责

    • 外观模式(Facade Pattern):为子系统的一组接口提供了一个一致的界面

    • 享元模式(Flyweight Pattern):运用共享技术有效的支持大量细粒度的对象

    • 代理模式(Proxy Pattern):增加中间层代理类与底层实现类实现共同接口,并创建底层实现类对象,以便向外界提供功能接口

  • 行为型模式:对象做什么

    • 责任链模式(Chain of Responsibility Pattern):使多个对象都有机会处理请求,避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链

    • 命令模式(Command Pattern):将一个请求封装成一个对象,使用户对不同请求对客户进行参数化,对请求排队或记录请求日志,请求撤销操作

    • 解释器模式(Interpreter Pattern):给定一个语言,定义他的一个文法的一种表示,并定义一个解释器。

    • 迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中的元素,并且不暴露内部表示

    • 中介者模式(Mediator Pattern):用一个中介对象封装一系列对象的交互

    • 备忘录模式(Memento Pattern):在不破坏封装的情况下,捕获一个类的内部状态,并在外部保存。可以将对象恢复到原先的状态

    • 观察者模式(Observer Pattern):定义了一种一对多的依赖关系,让多个监听者对象同时监听同一个主题对象

    • 状态模式(State Pattern):一个对象内在状态改变是允许改变其行为

    • 策略模式(Strategy Pattern):策略模式是一种定义了一系列算法的方法,所有的算法都是完成相同的工作,只是实现方法不同,减少了各种算法类与使用方法之间的耦合

    • 模板模式(Template Pattern):定义一个操作算法骨架,而将一些步骤延迟到子类。

    • 访问者模式(Visitor Pattern):把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值