高内聚,低耦合不错的例子

接口,再设计上跟类型是同样的东西,就是类型。在设计上并不纠结什么.net 编程术语,而是各种OO语言都公认的基本术语。

所以“写接口、写父类、写抽象类”,以及一大堆其它说法(比如说.net根本不支持的多重继承技术),都是一样的东西——可以用来降低耦合、保证高内聚地封装。

比如说你开发一个通用的 ATM 程序,面对5种大类、25种小类,假设有500种不同的银行卡处理流程,你要写500个程序吗?不是的。你首先写了一个ATM 流程父类,然后5种大类的差别在子类中重写,然后25种小类与其大类的差别又分别在小类中进行重写,然后每一种银行卡的一点点差别又分别在每一个银行卡类中进行重写。

假设有1000个人跟这500种银行卡发生关系,是要考虑 50万种情况吗?不是的。因为ATM 只有一种——所有的银行卡都是它的子类,因此具体的银行卡流程是通过父类给外界打交道的。

分层扩展,继承和多态,就是保证高内聚低耦合的一种设计手段。
### 定义和解释高内聚低耦合 #### 高内聚 高内聚是指一个模块内的组件应该紧密结合在一起,专注于完成特定的任务或功能。这意味着模块内部的功能应当紧密关联,职责明确且单一。当一个模块具有高内聚特性时,其内部逻辑更加紧凑,减少了不必要的复杂性,从而提高了代码的可维护性和可读性[^4]。 ```python class UserManagement: def __init__(self, user_data): self.user_data = user_data def add_user(self, user_info): # 添加用户的逻辑 pass def remove_user(self, user_id): # 删除用户的逻辑 pass def update_user(self, user_id, new_info): # 更新用户的逻辑 pass ``` 上述 `UserManagement` 类展示了如何将与用户管理相关的操作集中在一个类中,体现了高内聚的原则。 #### 低耦合 低耦合指的是不同模块之间的依赖关系尽可能少。通过减少模块间的相互作用,可以使得系统的各个部分更独立,便于单独开发、测试以及后期维护。为了实现这一点,通常会采用接口隔离、抽象层等方式来间接通信,而不是让各部件直接调用对方的具体实现细节[^3]。 ```python from abc import ABC, abstractmethod class DatabaseInterface(ABC): @abstractmethod def connect(self): pass @abstractmethod def disconnect(self): pass class MySQLDatabase(DatabaseInterface): def connect(self): print("Connecting to MySQL database...") def disconnect(self): print("Disconnecting from MySQL database...") class PostgreSQLDatabase(DatabaseInterface): def connect(self): print("Connecting to PostgreSQL database...") def disconnect(self): print("Disconnecting from PostgreSQL database...") ``` 在这个例子中,不同的数据库连接方式被封装到了各自的子类里,并继承自同一个父接口 `DatabaseInterface` ,这降低了其他业务逻辑同具体存储方案之间可能存在的强绑定情况,实现了良好的解耦效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值