您的位置:首页 > 移动开发 > Objective-C

条款38:通过复合塑膜出has-a或"根据某物实现"

2010-03-19 18:31 423 查看
1、has-a

class Address{...};
class PhoneNumber{...};
class Person{
...
private:
std::string name_;
Address address_;
PhoneNumber voiceNumber_;
PhoneNumber faxNumber_;
};


Person class(类)示范了 has-a(有一个)的关系。一个 Person object(对象)has a(有一个)名字,一个地址,以及语音和传真电话号码。

2、is-implement-in-terms-of

      假设你需要一个类的模板来表现相当小的 objects(对象)的 sets,也就是说,排除重复的集合。你决定让你的新的 Set template(模板)从 list 继承。Set 的 member functions(成员函数)可以极大程度地依赖 list 和标准库的其它部分已经提供的机能,所以只要你熟悉了用 STL 编程的基本方法,实现就非常简单了。

template<class T> // the right way to use list for Set
class Set {
public:
bool member(const T& item) const;
void insert(const T& item);
void remove(const T& item);
std::size_t size() const;
private:
std::list<T> rep; // representation for Set data
};


     意思是一个 Set 对象可以 be implemented in terms of a list object(是根据一个 list 对象实现的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐