设计模式-面向对象设计的6大原则

导览:开篇(23种设计模式)面向对象设计的6大原则

创建型结构型行为型
工厂方法(Factory Method)<类>适配器(Adapter)<类, 对象>解释器(Interpreter)<类>
抽象工厂(Abstract Factory)<对象>桥接(Bridge)<对象>模板方法(Template Method)<对象>
建造者(Builder)<对象>组合(Composite)<对象>责任链(Chain of Responsibility)<对象>
原型(Prototype)<对象>装饰者(Decorator)<对象>命令(Command)<对象>
单例(Singleton)<对象>外观(Facade)<对象>迭代器(Iterator)<对象>
享元(Flyweight)<对象>中介者(Mediator)<对象>
代理(Proxy)<对象>备忘录(Memento)<对象>
观察者(Observer)<对象>
状态(State)<对象>
策略(Strategy)<对象>
访问者(Visitor)<对象>

在了解设计模式之前,首先应该知道面向对象设计的6大原则,这些原则是设计模式的基础,只有理解了这些原则才能更好理解设计模式。

开闭原则(Open Closed Principle)

软件中的对象应该对扩展是开放的,但是对修改是封闭的。开闭原则的目的是尽量通过扩展软件的模块、类、方法来实现功能的变化,而不是通过修改已有的代码来完成,从而降低因为修改原有代码而给程序带来的出错率。

单一职责原则(Single Responsibility Principle)

一个类应该只有一个发生变化的原因,一个类只负责一项职责。单一职责原则有以下优点:

  • 可以降低类的复杂度,一个类只负责一项职责,逻辑会比负责多项职责简单
  • 逻辑简单就能提高类的可读性,并提高系统的可维护性
  • 修改一个功能时减少对其他功能的影响,降低变更引起的风险

依赖倒置原则(Dependence Inversion Principle)

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。采用依赖倒置原则可以降低类之间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。
实现依赖倒置原则通常使用构造注入、设值注入和接口注入。构造注入是通过构造函数来传入具体类的对象, 设值注入是通过Setter方法来传入具体类的对象,接口注入是通过在接口中声明的业务方法来传入具体类的对象。

接口隔离原则(Interface Segregation Principle)

客户端不应该被迫依赖于它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口上。接口应该尽量细化,一个接口对应一个功能模块,同时接口里面的方法应该尽可能的少,使接口更加灵活轻便。接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。

里氏替换原则(Liskov Substitution Principle)

继承必须确保父类所拥有的性质在子类中仍然成立,也就是说子类可以扩展父类的功能,但不能改变父类原有的功能(尽量不要重写父类的方法)。里氏替换原则有以下优点:

  • 里氏替换原则是实现开闭原则的重要方式之一
  • 类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性
  • 变更时可以做到非常好的兼容性,降低需求变更时引入的风险

迪米特法则(Law of Demeter)

迪米特法则又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好。迪米特法则的意义在于降低类之间的耦合,每个类尽量减少对其他类的了解,因此系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值