类之间的关系
Composition复合
Inheritance继承
Delegation委托
1、Composition:
Composition表示:has-a的关系,即包含一个、若干个的关系。如图,queue有一个deque类,如下图所示:queue作为容器,他容纳了类deque
Adapter:适配器设计模式:
改造一下已有的实现,改头换面,即可实现“适配”功能。
Composition关系下的构造和析构:
构造函数:由内到外,先调用内部对象的默认构造函数,然后再调用容器自己的构造函数。
默认:是指编译器帮我们做的,如果我们想调用自己定义的构造函数,只能自己来调用,替换掉下面图中的红色Component(x,b,a),并传入参数
析构函数:由外到内,跟构造刚好相反。
2、Delegation(Composition by refenrence)委托:如下图所示。
Handle/body :pointor to implemetation.
Copy on wirte:这个概念在操作系统里面有提及。
3、Inheritance继承关系:
表示is-a的关系,如A继承B,记为A->B,表示B是一种A,B更特殊、更具体。
继承关系的构造和析构顺序和composition类似。
父类的析构函数最好写成虚函数。考虑到以后有可能会被继承。
继承with虚函数才能发挥继承最强大的功能
virtual函数:希望所有子类重新定义的函数-非强制,只是希望被重新定义override
non-virtual函数:不希望被任意子类重新定义的函数,预想父类的设计已经够用了
pure virtual:所有子类一定要重新定义的函数
Template Method不是模板的意思。指的是函数实现延缓。是一种设计模式。(架构师)
应用程序框架:好的框架在于实现者的视野和胸怀。
OOD:面向对象,通过多个类来解决一个问题。