我有一个类A,它具有公共方法,并被其他100个在不同应用程序中实现的类使用。现在我想将这些公共方法设置为私有的,以便没有新的类访问它们,但是我希望现有的客户端类仍然可以访问它们。 但我甚至不想接触那些客户类,因为业主很少甚至允许他们的课程中出现任何涟漪。限制对类的方法的访问
我检查
Can I access private members from outside the class without using friends?
friend class with limited access
但是所有的(不是全部真的)需要在客户端的代码的变化。客户端代码不应该改变。
一个简单的方法就是让所有的N级朋友成为朋友,但是我做这件事有点不舒服。是否有任何模式或可接受的技术(不是黑客请求)来实现此访问限制? 谢谢,我很抱歉,如果这是重复的。
他可以声明只有一些方法,如“朋友”,而不是整个类。 – Idov
@Idov:哦是的,如果只有这100个类中的特定方法需要访问,那么OP可以做到这一点。在这种情况下,我说的最后一点不适用。但是我不确定什么是确切的情况,我引用了最坏的情况。 –
@Idov:非常感谢。如果我正确地理解了你,(不同类的)调用者方法应该被声明为朋友。我在一个测试程序中尝试了它,它工作。非常感谢你。可以将一个类中的几个方法(在这种情况下,它是A)声明为朋友并且是私有的,以便朋友类方法除了公共接口之外只能访问它们? – user917279