面向对象八大设计原则

目的是使程序更加灵活
开-闭原则(目标、总的指导思想)
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
不要和陌生人说话。
类与类交互时,在满足功能要求的基础上,传递的数据量越少越好。因为这样可能降低耦合度。
一个方法使用委托 多个方法使用接口 或者事件这些方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值