Java学习Day26:基础篇16:设计原则和设计模式

Java 设计原则和设计模式是软件开发中的重要概念,它们帮助开发者构建可维护、可扩展、高效且易于理解的代码。下面将分别介绍Java设计原则和设计模式的一些基本概念和常见的例子。

Java 设计原则

设计原则是一系列指导软件设计的指导方针,它们不是必须遵守的规则,但遵循这些原则可以极大地提高代码的质量和可维护性。

  1. 单一职责原则(Single Responsibility Principle, SRP)
    • 一个类应该只负责一项职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。
  2. 开放-封闭原则(Open-Closed Principle, OCP)
    • 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即软件实体应该在不修改现有代码的情况下扩展。
  3. 里氏替换原则(Liskov Substitution Principle, LSP)
    • 所有引用基类(父类)的地方必须能透明地使用其子类的对象。即子类对象能够替换掉父类对象被使用的地方,且软件的功能不受影响。
  4. 依赖倒置原则(Dependency Inversion Principle, DIP)
    • 高层次的模块不应该依赖低层次的模块,它们都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。核心思想是面向接口编程。
  5. 接口隔离原则(Interface Segregation Principle, ISP)
    • 不应该强迫客户依赖于它们不使用的方法。一个类对另一个类的依赖应该建立在最小的接口上。
  6. 迪米特法则(Law of Demeter, LoD)
    • 一个对象应该对其他对象保持最少的了解。尽量降低类与类之间的耦合度。
  7. 合成/聚合原则 :不要为了继承而继承,类和类之间有关系,一定要做成继承关系

Java 设计模式

设计模式是在软件工程中反复出现的问题的解决方案。使用设计模式可以重用代码、增加代码的可读性和可维护性,并促进团队成员之间的通信。

常见的Java设计模式包括:

  1. 创建型模式(Creational Patterns)
    • 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。
    • 工厂方法模式(Factory Method):定义一个创建对象的接口,但让子类决定要实例化的类是哪一个。
    • 抽象工厂模式(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
    • 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
    • 原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
  2. 结构型模式(Structural Patterns)
    • 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。
    • 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
    • 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。
    • 装饰器模式(Decorator):动态地给一个对象添加一些额外的职责。
    • 外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
  3. 行为型模式(Behavioral Patterns)
    • 策略模式(Strategy):定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。
    • 模板方法模式(Template Method):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
    • 观察者模式(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
    • 状态模式(State):允许一个对象在其内部状态改变时改变它的行为。
    • 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。

了解和掌握这些设计原则和设计模式,对于编写高质量的Java代码至关重要。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值