SA 面向对象的设计法则

本文探讨了面向对象设计中的重要法则,包括优先使用组合而非继承,强调对接口编程而不是实现,开放封闭法则(OCP)以及Liskov替换法则(LSP)。通过对这些原则的理解,开发者可以更好地设计和维护软件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象的设计法则

1. 优先使用组合(对象),而非继承(类)
(1) 组合
        优点:容器类仅能通过被包含对象的接口来对其进行访问
黑盒复用
相互依赖性比较小
        缺点:导致系统中的对象比较多
为了能将多个不同的对象作为组合块,必须仔细定义接口
(2) 继承
        优点:容易实现,多数方法都可以通过继承而来
易于修改或扩展那些被复用的实现
        缺点:破坏了封装性
白盒复用
父类的实现更改时,子类也不得不随之更改
(3) 什么时候使用继承【4个条件】
        子类表达了“是一个。。。。的特殊类型”
        子类对父类的职责进行扩展
        子类的一个实例永远不需要转化为其他类的对象
        对于一个位于实际的问题域的类而言,其子类特指一种角色、交易或设备

2. 面对接口编程,而非接口的实现

3. 开放封闭法则(OCP)
        对扩展开放
        对更改封闭

4. Liskov替换法则(LSP)
        关注的是行为功能,属于外在、公开的,是客户程序所以来的
        清楚地表明了ISA关系全部都是与行为有关的。【正方形和长方形】
        为了保持LSP,所有子类必须符合使用基类的Client所期望的行为。【所有子类都能通过其基类进行访问】
        一个子类不得具有比基类更加严格的限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值