C++物理设计——组件

逻辑实体:诸如类和函数,为“皮肉”; 物理结构:“骨架”; 逻辑实体分布于许多物理实体,诸如文件和目录中。对于逻辑关系,一般有以下三种: 1.组件是物理设计的最小单位类、函数、枚举等都是组成这些组件的逻辑实体。特别的是,每个类定义都刚好只驻留在一个组件中。1) 一个组件刚好由一个头文件(.h) 和 一个实现文件(.c) 构成。 一个组件通常定义一个或者多个密切相...
摘要由CSDN通过智能技术生成

逻辑实体:诸如类和函数,为“皮肉”;
物理结构:“骨架”;
逻辑实体分布于许多物理实体,诸如文件和目录中。

对于逻辑关系,一般有以下三种:
这里写图片描述
这里写图片描述
这里写图片描述

1.组件是物理设计的最小单位

类、函数、枚举等都是组成这些组件的逻辑实体。特别的是,每个类定义都刚好只驻留在一个组件中。

1) 一个组件刚好由一个头文件(.h) 和 一个实现文件(.c) 构成。
一个组件通常定义一个或者多个密切相关的类并被认为适合所支持抽象的任何自由运算符,如下图每一个组件都既有物理试图也有逻辑视图。物理视图由.h文件和.c 文件组成。

2) 组件是合适的逻辑设计和物理设计的基本单位,这至少有三个理由:

1) 一个组件常常把跨越许多逻辑实体(例如,类与自由运算符)的大量易管理的内聚功能打包到单一的物理单元。
2) 一个组件不仅作为单一的实体捕获整个抽象,而且允许考虑不通过类级别设计来解决物理问题。
3)一个适当设计的组件(作为一个物体实体不像类那样)可以作为单一的单位从系统中提出来,不必重写就可以在另一个系统中有效地重用。
这里写图片描述

3) 一个组件的逻辑接口是以编程方式可访问或可被用户检测到的。

组件的逻辑接口是定义在头文件中的类型和功能的集合,可以被该组件的用户以编程方式访问。由于组织原因,存在于.h 文件中的私有细节将被封装,并不属于逻辑接口。

一个类的公共接口由该类公共成员的接口的联合体组成,同样,一个组件的“公共”接口由该组件.h文件中所有公共成员函数、typedef、枚举和自由(运算符)函数的集合组成。

2.物理设计规则

1) 在一个组件内部声明的逻辑实体,不应该在该组件的外部定义。

以下是不合理的组件逻辑规则,其中 “stack.h” 中的push(int i) 在intset.c 定义,”stack.h” 中的 pop() 在main.c 定义。
这里写图片描述

组成一个组件的.c文件和.h 文件的根名称应该完全匹配。

2) 每个组件的.c 文件都应该将包含它自己的.h 文件作为第一行独立的代码。

//wildthing.h
#ifndef INCLUDE_WILDTHING
#define INCLUDE_WILDTHING
 (这里其实有点错误,少声明了什么)
class WildThing{
public:
        WildThing();
        // ...
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值