通过分层实现‘有一个’或‘用来实现’
需积分: 0 158 浏览量
更新于2024-09-20
收藏 33KB DOC 举报
"条款40 通过分层来体现‘有一个’或‘用...来实现’,这是 Effective C++ 中的建议,强调了类之间的关系和实现方式。分层、构成、包含或嵌入是同一概念,指的是一个类包含其他类的对象作为其数据成员。这种设计模式有助于体现‘有一个’的关系,比如 Person 类拥有 name、address 和 phone numbers。"
在C++编程中,分层是一种重要的设计原则,它允许我们构建复杂系统时,将功能拆分为多个独立的组件,每个组件负责特定的责任。通过将一个类的对象作为另一个类的数据成员,我们可以创建出具有层级结构的类体系,这种结构反映了类之间的“有一个”关系。在提供的例子中,Person 类包含了 string、Address 和 PhoneNumber 类的对象,表示一个 Person 对象拥有这些属性。
分层与公有继承不同,公有继承通常表示“是一个”关系,如子类继承父类,表明子类是父类的一种特例。而分层则表示“有一个”关系,一个对象包含或使用另一个对象来实现其功能。例如,Person 不是 Address 或 PhoneNumber,但它有一个 Address 和一个 PhoneNumber。
在讨论“用来实现”时,条款提到了集合类模板的需求,例如表示不重复元素的集合。在C++标准库中,set 模板是用于此目的的一个选择,但有时其要求元素完全有序可能不适用于所有情况。如果需要一个不依赖完全有序性的集合,可能需要自定义一个类来适应这种“用来实现”的需求,这可能是出于性能、灵活性或其他特定需求的考虑。
条款40 提醒开发者理解并正确使用分层来体现“有一个”或“用...来实现”的关系,这有助于提高代码的可读性、可维护性和设计的灵活性。同时,它鼓励根据具体需求选择适当的实现策略,如利用现有库或自定义解决方案,以达到最佳效果。在实际编程中,应权衡重用和定制之间的平衡,以满足项目的特定要求。
linw125
- 粉丝: 0
- 资源: 3
最新资源
- 数字单片机数字单片机
- D语言编程参考手册1.0
- JAVA程序员面试题解惑
- cognos8.12学习资料
- Intel双核与超线程的区别与联系
- 如何编写LINUX 驱动
- Apache与多个Tomcat服务器集成时的负载平衡.txt
- GCC中文手册,详细介绍GCC
- GCC中文手册,详细介绍GCC
- Cross-words Reference Template for DTW-based Speech Recognition Systems
- 一份不太简短的LaTex介绍
- Linux 常用指令大全
- 计算机毕业论文(试题库管理系统)
- 综合电子仿真与设计项目
- XX公司网络设计方案doc
- Oracle Biee Catalog合并