在我的项目中应用到了设计模式中的一个设计原则,依赖倒置原则:就是高层模块不直接依赖低层模块,两者都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象
在实际项目中的对不同的相机进行了开发,在其中包含了海康相机和basler相机,根据上面说到的依赖倒置原则,其中高层模块就是我们写的应用程序,低层模块可以看成是相机的api函数,我们在开发的时候不能直接让应用程序直接调用这些api函数,要是直接调用的话客户要跟换相机从海康相机换成basler相机的话,这样我们就需要把所有海康的api接口换成basler的api接口,这样的工作量很大。
因此根据上述原则,我们需要在高层模块和低层模块之间添加一个中间层也可以成为抽象层。也就是一个同一的接口,这些接口不能改变,我们只需要对这些接口进行重写,在海康相机的子类中就调用海康的api函数,在basler相机的子类中就调用basler相机的api函数,这样很好扩展,之后需要更换相机的时候就重写一个新相机子类即可。
而我们的高层只需要调用这些接口层的函数,不需要关注低层模块是如何实现的,这让整个程序维护起来就十分的方便!