封装,是将具体的实现细节隐藏,而把功能作为整体提供给类的外部使用,也就是说,公有方法能够完成类所具有的功能。当别人使用这个类时,如果通过反射直接调用私有方法,可能根本实现不了类的功能,甚至可能会出错,因此通过反射调用私有方法可以说是没有任何用处的,开发人员没有必要故意去破坏封装好的类。从这点上看,封装性并没有被破坏。
我认为反射机制只是提供了一种强大的功能,使得开发者能在封装之外,按照特定的需要实现一些功能。但是当对象封装不合理的的时候,迫不得已还是要用的,这样才会使程序更加完美。
存在即合理吧。 |