设计模式(1)--面向对象的设计原则
2023-12-13 05:22:49
? ? ? ?遵守设计原则的目的:使系统更灵活地适应变化,提高代码可读性、可重用性,提高系统可维护性、可扩展性,减少变化给系统引入新错误的风险。
1. 开闭原则OCP(Open-Closed Principle)
? ? OCP是让设计对扩展开放,对修改关闭,是最基础的设计原则。
? ? 本质是指软件功能有变化时(业务逻辑变化),不修改已有的代码,而是应该通过扩展来实现变化。
2. 里氏替换原则LSP(Liskov Substitution Principle)
? ? Liskov是美国第一个计算机科学女博士。
? ? 这个原则的意思是任何基类对象出现的地方,都可以用子类对象替换。
? ? 子类继承父类时,必须是is-a的关系,子类可以扩展父类的功能,但不能改变父类原有的功能。
? ? 不遵守这个原则可能导致增加代码复杂度和不可知的错误。
3. 依赖倒转原则DIP(Dependency Inversion Principle)
? ? 3.1 高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
? ? 3.2 抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
? ? 以抽象方式耦合是依赖倒转原则的关键。
? ? 依赖倒转原则带来的一个启示是:针对接口编程,而不是针对实现编程。
4. 接口隔离原则ISP(Interface Segregation Principle)
? ? 客户端不应该依赖它不需要的接口。
? ? 一个类对另一个类的依赖应该建立在最小的接口上。
? ? 也就是细化接口(单一职责),使用多个专门的接口,而不使用单一的总接口。
5. 迪米特法则/最少知道LOD(Law of Demeter)
? ??一个类对于其他的类知道的越少越好,就是说一个对象只和必须的有限对象打交道。
? ? 尽量降低类和成员的访问权限。
6. 合成复用原则CRP(Composite Reuse Principle)
? ??尽量使用对象组合或聚合,而不是继承来达到复用的目的。
7. 单一职责原则SRP(Single Responsibility Principle)
? ? ?所有的类/对象/方法都应该有单一的职责,也就是只做一件事。
? ? ?单一职责原则的核心就是解耦和增强内聚性。
文章来源:https://blog.csdn.net/myepicure/article/details/134412702
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!