面试题答案
一键面试- 抽象主题(Subject)接口:
- 职责:定义了真实主题和代理主题的共同接口,这样在任何使用真实主题的地方都可以使用代理主题。通过这个接口,客户端可以统一地调用真实主题和代理主题的方法,使得代理能够对真实主题进行替代和扩展。
- 真实主题(RealSubject)类:
- 职责:实现了抽象主题接口,是代理对象所代表的真实对象,包含了实际业务逻辑的具体实现,执行客户端真正需要的核心功能。
- 代理主题(Proxy)类:
- 职责:同样实现了抽象主题接口,持有一个真实主题对象的引用。在其实现的接口方法中,除了调用真实主题对象的对应方法,还可以在调用前后添加额外的逻辑,例如权限验证、日志记录、事务处理等功能,实现对真实主题的功能扩展。
- 客户端(Client):
- 职责:通过抽象主题接口来调用代理主题对象的方法,而不直接与真实主题交互。客户端不需要知道具体是真实主题还是代理主题在执行方法,这实现了客户端与真实主题的解耦,提高了系统的可维护性和可扩展性。