面向对象设计原则与设计模式解析
1. 聚合与组合
在软件开发中,有时我们需要将一组对象和行为组合在一起,并且当其中一个对象被移除时,其他对象仍能继续存在,这就是聚合的概念。如果行为需要持续存在,就必须使用聚合。聚合是指一个类作为另一个类的一部分,但仍能在该类之外独立存在。如果对象本身有独立存在的意义,就使用聚合;否则,使用组合。
例如,图书馆就是聚合的一个例子。每本书都有其独立的意义,但所有书的集合构成了图书馆。关键在于找到一个实例,表明组件在组合之外使用是合理的,即它应该有独立的存在。
在“Space Rangers”的例子中,除了宇宙飞船对象,还有飞行员对象。飞行员可以携带武器,比如手持激光枪。当飞行员意外被疯狂的太空牛压碎时,武器不一定会和飞行员一起被摧毁,这就体现了聚合的需求,即手持激光枪可以被飞行员使用,但在飞行员类之外有独立的存在。
2. 依赖倒置原则(DIP)
依赖倒置原则由Robert C. Martin提出,其定义如下:
- 高层模块不应依赖低层模块,两者都应依赖抽象。
- 抽象不应依赖细节,细节应依赖抽象。
简单来说,就是不要依赖具体类,而应依赖抽象。传统的结构化设计通常是自上而下或自下而上的,高层软件依赖于低层的决策,包括接口和行为决策。而在面向对象设计中,依赖倒置原则意味着高层(更抽象)的设计层次应创建一个接口,低层(更具体)的层次应按照这个接口进行编码。
例如,传统的结构化设计中,程序通常有以下通用格式:
1. 从某个地方获取输入数据。
2. 处理数据。
3. 将数据写入其他地方。
在这个例子中,处理器
面向对象设计原则与设计模式解析
超级会员免费看
订阅专栏 解锁全文
3287

被折叠的 条评论
为什么被折叠?



