面向对象八大设计原则

本文深入探讨了软件设计的六大核心原则:开-闭原则、单一职责原则、依赖倒置原则、组合复用原则、里氏替换原则及接口隔离原则。通过对每个原则的详细解析,帮助读者理解如何构建更灵活、稳定和易于维护的软件系统。

目的是使程序更加灵活
开-闭原则(目标、总的指导思想)
Open Closed Principle
对扩展开放,对修改关闭。
增加新功能,不改变原有代码。
类的单一职责(一个类的定义)
Single Responsibility Principle
一个类有且只有一个改变它的原因。
适用于基础类,不适用基于基础类构建复杂的聚合类。
//对应封装
依赖倒置(依赖抽象)
调用父类
Dependency Inversion Principle
客户端代码(调用的类)尽量依赖(使用)抽象的组件。
抽象的是稳定的。实现是多变的。
找个代表,依赖倒置,隔离调用和定义
//封装、继承、接口、委托,事件….无时无刻不在体现依赖倒置
组合复用原则(复用的最佳实践)
Composite Reuse Principle
如果仅仅为了代码复用优先选择组合复用,而非继承复用。
组合的耦合性相对继承低。
//关联关系将某个类当成本类的属性来使用
//[关联复用原则]也可以这么说 连接两边的变化点
里氏替换(继承后的重写,指导继承的设计)
Liskov Substitution Principle
父类出现的地方可以被子类替换,在替换后依然保持原功能。
子类要拥有父类的所有功能。
子类在重写父类方法时,尽量选择扩展重写(base.GetSalary()+Bonus),防止改变了功能。
重写改变方法表地址
接口隔离(功能拆分)
Interface Segregation Principle
尽量定义小而精的接口interface,少定义大而全的接口。
小接口之间功能隔离,实现类需要多个功能时可以选择多实现.或接口之间做继承。
面向接口编程而非面向实现(切换、并行开发) 抽象工厂
客户端通过一系列抽象操作实例,而无需关注具体类型。
便于灵活切换一系列功能。
实现软件的并行开发。
迪米特法则(类与类交互的原则)
Law of Demeter
不要和陌生人说话。
类与类交互时,在满足功能要求的基础上,传递的数据量越少越好。因为这样可能降低耦合度。
一个方法使用委托 多个方法使用接口 或者事件这些方法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值