接口就是一个程序与其它程序交流的窗口。我们可以通过纯虚函数定义一个抽象类,专门用来声明一个类的功能。其类图关系如下:设计根据需求,我们可以定义三个类Document、Page、TextUnit分别表示文档、页、文本单元,每个类我们还需要一个对外的接口,于是需要三个对外的接口类IDocument、IPage、ITextUnit。这里Document、Page、TextUnit就是具体的实现类,IDocument、IPage、ITextUnit就是对外提供的接口,这样就实现了实现与接口分离。那问题来了,IDocument由谁来创建呢?这时我们可以提供两个全局的函数CreateDoc和DestroyDoc用来创建和销毁IDocument的对象指针,这两个函数是全局函数,我们需要为其提供C的导出接口。其接口定义如下:使用库我们可以将EBook编译成一个静态库,然后再创建一个新的工程使用它。

C++实现“隐藏实现,开放接口”的方案

C++实现“隐藏实现,开放接口”的方案

C++实现“隐藏实现,开放接口”的方案

C++实现“隐藏实现,开放接口”的方案

C++实现“隐藏实现,开放接口”的方案

C++实现“隐藏实现,开放接口”的方案

C++实现“隐藏实现,开放接口”的方案