我有一个类,需要测试它的一些内部函数。
我不想将这些测试作为课程的一部分嵌入,因为它们只能由一些外部实体使用,其唯一目的是进行系统验证。
我的解决方案是以声明内部函数protected
的形式,并添加一个“暴露”它们以供外部使用的类。
这是一个非常简单的(伪代码)示例:
class public MyClass {
protected int add(int val1, int val2) {
return val1 + val2;
}
protected int mul(int val1, int val2) {
return val1 * val2;
}
}
class MyClassExposurer : public MyClass {
public int addTest(int val1, int val2) {
return super.add(val1, val2);
}
public int mulTest(int val1, int val2) {
return super.mul(val1, val2);
}
}
这种设计模式是否有已知的术语?
谢谢。
答案 0 :(得分:0)
您正在寻找"设计模式的名称"你使用:我会说适配器和代理之间的混合。它可以工作,可以保留为imo。
更让我感到困扰的是,在您考虑使用关键字朋友的情况下,使用该解决方案时,您将被强迫仅为了改变曝光级别来强化课程允许您的测试类直接访问私有方法,而不是修改测试类(私有)的初始封装级别。