下面是这些原则的简要说明:
- 单一职责原则(SRP):一个类应该仅承担一个职责或目标,并且完全封装这个职责 。这个原则促进_高内聚_,帮助保持类的专注和易于管理 。
- 开放封闭原则(OCP):软件实体(如类、模块、函数等)应该对扩展开放 , 对修改封闭 。应设计代码以便在不更改现有代码的情况下增加新功能,从而减少更改的影响并促进代码重用 。
- 里氏替换原则(LSP):超类的任何实例都应该能被其子类的实例替换,而不影响程序的正确性 。换言之 , 基类的任何实例都应该可以用其派生类的实例替换 , 保证程序行为的一致性 。
- 接口隔离原则(ISP):客户端不应被迫依赖它们不需要的接口 。建议将大型接口拆分为更小且更具体的接口,使得客户端仅需依赖它们真正需要的接口 。这有助于松耦合和避免不必要的依赖 。
- 依赖反转原则(DIP):高层模块不应依赖低层模块,两者都应依赖抽象 。鼓励使用抽象(接口或抽象类)来解耦高层模块和低层实现细节,促进基于抽象而非具体实现的依赖 。
合理运用设计模式设计模式是经验丰富的开发者在处理多种编码场景后总结出的最佳实践 。恰当地使用设计模式可以显著提升代码的复用性 。
掌握设计模式还能增强你阅读和理解代码的能力——这包括 JDK 中的代码 。当你能识别出其背后的设计模式时,代码会变得更加清晰 。
尽管设计模式有其用处,但并非每种模式适用于所有情况 , 因此使用时需谨慎 。仅仅因为我们了解某个模式,并不意味着就应该随意应用 。在不恰当的场景中使用设计模式可能会使代码变得更复杂、更难以维护 。然而 , 在合适的场合应用设计模式,可以使代码更加灵活和易于扩展 。
以下是面向对象编程中常见的设计模式简要概述:
创建型模式
- 单例(Singleton):确保一个类仅有一个实例,并提供一个全局访问点 。
- 工厂方法(Factory Method):定义一个用于创建对象的接口,但由子类决定实例化哪个类 。
- 抽象工厂(Abstract Factory):提供一个接口,用于创建相关或依赖对象的族群 。
- 建造者(Builder):分离复杂对象的构建和表示 。
- 原型(Prototype):通过复制现有的实例来创建新实例 。
- 适配器(Adapter):将一个类的接口转换成客户端所期望的另一种接口 。
- 装饰器(Decorator):动态地为对象添加新的功能 。
- 代理(Proxy):为另一个对象提供一个代理或占位符,以控制对这个对象的访问 。
- 组合(Composite):将对象组合成树形结构,以表示部分整体的层次结构 。
- 桥接(Bridge):将抽象部分与其实现部分分离,使它们可以独立变化 。
- 观察者:在对象间建立一种一对多的依赖关系 , 使得当一个对象改变状态时,所有依赖它的对象都会自动收到通知并更新 。
- 策略:封装了一系列算法,并在运行时允许选择其中的一种 。
- 模板方法:在基类中定义一个算法的框架,并允许子类提供具体的实现 。
- 命令:将请求或简单操作封装成对象,这使得你可以使用不同的请求、队列或日志请求 , 并支持可撤销的操作 。
- 状态:当对象的内部状态改变时,允许对象改变其行为 。
- 迭代器:提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示 。
- 责任链:允许请求沿着处理者链传递 , 直到一个处理者处理它 。
- 中介者:定义一个对象,该对象封装了一组对象如何交互的方式,从而促进它们之间的松散耦合 。
推荐阅读
- 游戏不能进行多开怎么设置,如何解除游戏多开限制
- 卖烟花爆竹违法,销售烟花爆竹公安如何处理
- 小米摄像头如何回看录像,小米摄像头共享设备如何回看
- 人间水蜜桃牧野真莉爱:颜值与身材的完美融合,你如何看待她的独特魅力?
- 我国车辆违章如何扣分
- 如何网上办理深圳居住证学历认证
- 如何合并word文件到一个文件
- iPhone如何设置来电壁纸
- 如何处理掉色严重布料问题 如何处理掉色严重布料
- 如何判断自己喜欢上了一个人