[英]C++ class design
也许这不是纯粹的c ++技术问题,但是任何建议都是值得欢迎的。
我需要与许多成员一起实施课程(比方说A)。
我还需要通过其他类的集合来访问这些数据,并且这种访问应该非常快(绘制由A类成员提供的条件)。
第一种方法是将A内部的访问级别设置为私有,并使用种类的设置器/获取器来获取要检查的特定元素(许多方法调用)。
另一种方法是,将所有内容都公开在A中,下一个则创建数十个朋友课程。 老实说,我不喜欢以上任何一个。 系统其余部分完全不应该访问A类成员,而只能访问感兴趣的成员。
也许有人不得不处理类似的事情,并可以建议一些好的做法,也许是合适的设计模式?
如果您的类不仅仅是一个愚蠢的数据和标志集合,那么正确的方法是将您对数据所做的任何事情添加到该类中,而不是使用get / set公开它。
例如,如果要从“多边形”类中提取坐标,颜色和线条粗细以进行绘制,则应在该类中添加一个方法来进行绘制(并将绘制上下文作为参数传递)。
在这两个选项中,我更喜欢使用getter / setter方法,因为公共成员不是一个好主意,尤其是在系统的大多数部分都不能访问这些成员的情况下。
因此(即使您的问题足够笼统而又贪婪),如果您担心“不受控制的访问”,也许可以采取一种解决方案
最后,您应该尝试减少访问成员的不同类的数量,并定义一个公共虚拟类,以便为每个子类提供一组公共的有效方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.