依赖倒置原则定义:依赖于抽象(接口),不要依赖具体的实现(类),也就是针对接口编程。
#include#include using namespace std; class AbsBook { public: virtual string Story() = 0; }; class Book : public AbsBook { public: string Story() { return "西游记"; } }; class Book1 : public AbsBook { public: string Story() { return "三只松鼠"; } }; class Book2 : public AbsBook { public: string Story() { return "哪吒闹海"; } }; class Mother { public: void TellStory(AbsBook *book) { cout << book->Story(); } }; int main() { Mother *mother = new Mother; AbsBook* book = new Book; cout << "妈妈讲:"; mother->TellStory(book); cout << "的故事" << endl; AbsBook* book1 = new Book1; cout << "妈妈讲:"; mother->TellStory(book1); cout << "的故事" << endl; AbsBook* book2 = new Book2; cout << "妈妈讲:"; mother->TellStory(book2); cout << "的故事" << endl; return 0; }
输出结果:
我们让其他的具体类依附于AbsBook这个抽象类(接口),这样无论Book里面的方法怎么变化我们的Mother里的方法永远是不变的,将高层和底层的中间用一个抽象类隔开都依赖于中间的抽象抽象层,两个层次怎么改变都不会相互影响,体现了c++的多态性,更好的帮助我们管理代码。



