第二周作业
作业一:
1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
2. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
依赖倒置原则,是软件框架开发中很重要的原则。也叫好莱坞原则,“don't call me, I will call you"。
那么是谁call谁呢?答案是框架主动调用业务应用类,而不是业务应用类去调用框架。
由框架开发者针对业务抽象出业务接口,即抽象出虚类,并在框架代码中调用这个暂未实现的接口。
业务开发者则需要继承这个虚类,并实现虚类中未实现的接口。
现在假设一个应用场景是架构师想要设计一份框架代码,抽象出进行存储的接口,可能是MYSQL进行存储,也可能是linux的文件进行存储。
程序有三个类,类Storebase,和类Mysql和类File。其中类Storebase有且仅有一个虚函数store(),类Mysql和类File继承类Store_base,并实现store()。
在这里,类Mysql和类File就是业务应用类。框架直接使用类Store_base的指针调用函数store(),就可以存储数据了。框架主动调用业务类,而不是业务类调用框架。
int main( void )
{
Build *build = new Cache();
Data_proc *proc = new Cache();
//系统运维管理者可以调用reBuild,但看不到get put delete
build->reBuild( conf );
//应用程序可以调用get put delete操作数据,但是看不到reBuild
proc->get( key );
proc->put( key, value );
proc->delete( key );
}
评论