本篇博文将展示一些面向对象编程的原理,充分利用他们有助于构建高质量的代码,我们介绍一些重要的设计模式,能够帮助大家构建易测试、易维护、可重用的代码库。
一、在算法设计中使用策略(Strategy)模式
1.概念及原理
(1)策略设计模式的目标是将算法封装在类中,这样可以更容易地替换一个现有的算法,或者组合使用多个算法以拥有更复杂的处理逻辑。此外,该模式将算法的复杂度隐藏在易用的编程接口背后,降低了算法的部署难度。
(2)一旦使用策略模式将算法分封装在类中,可以通过创建它的实例来使用它,通常而言,实例都在程序初始化时被创建。算法参数的默认值可以被读取并显示。在拥有GUI的应用程序中,参数值可以通过不同的控件进行操作(文本框、滚动条等),这样用户可以方便地进行调整。
2.实验
鉴别出图像中含有给定颜色的所有像素。该算法输入的是图像及颜色,并返回表示含有指定颜色的像素的二值图像,还需指定另外一个参数,即对颜色偏差的容忍度。
源码
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp&g