我在写一个lib的C++中有几个'强烈依赖'的类。第一类是“数据集”,就像它的名字一样,管理数据。第二类是“渲染器”并在DataSet中绘制数据。这两个类都是抽象的。下面是两个类之间的“流”我想:C++设计模式帮助;抽象类与私人访问?
应用程序创建实现DataSet对象(DataSetImpA,B,C),并将其传递到执行渲染(RendererImp)。
该应用程序告诉渲染器摄像头指向哪里。
Renderer使用相机参数在每个DataSet上调用一个私有'update'方法,以便DataSet准备所有的relavent对象。
Renderer调用私有'get'方法来检索新准备的对象。
渲染程序偶尔会调用私有的“清除”方法来销毁DataSet的对象。
'update','get'和'clear'方法在DataSet中是纯虚函数。 Friend类在这里不起作用,因为我希望实现对于使用lib的人来说是开放和可扩展的;当'class x'根据要使用的实现而变化时,期望有人写“朋友类x”是不好的。
有人可能会建议一种方法/设计模式来实现类似上面的东西?随意建议做的事情以及
不要让你的'update','get'和'clear'方法'private',使它们成为'public'。记录他们说他们是为了供Renderer使用。 – piokuc