需求变更应该尽早发现,发现的越早代码的抽象越容易,等到业务逻辑变得庞大复杂,已有代码已经到处在使用时,重构的成本就会变大,因此一开始的实现应该越简单越好,尽快完成并上线才是王道
代理模式:为其他对象提供一种代理,以控制对这个对象的访问。
基本原理
- 代理类和实体类都继承同一个接口(或抽象基类),具有相同的功能接口。
- 代理类内部维护一个实体类对象,真正的功能实现是调用改对象的接口。
代码结构
class Subject(object):
def Request(self):
raise NotImplementedError()
class RealSubject(Subject):
def Request(self):
print "真实请求"
class Proxy(Subject):
def __init__(self):
self.realSubject = RealSubject()
def Request(self):
self.realSubject.Request()
def client():
proxy = Proxy()
proxy.Request()
代理模式是一种比较常见的模式,比较典型的应用场景:
- RPC调用:RPC API负责代理具体的网络API调用。
- 虚拟代理:根据需要创建开销大的对象,提高性能。
- 安全代理:用来控制真实对象访问是的饿权限。
- 智能指针:当调用真实对象时,代理负责处理一些额外的工作。
网友评论