装饰者模式和代理模式的写法上差不多,但是他们的 区别在于构造方法中是否传入原始对象。这一点区别是很大的,装饰者模式的构造方法需要传入原始对象,这样可以做到给不同的对象动态添加方法,而代理模式不传入原始对象,是因为对象的初始化在构造方法里面完成了,这个对象不可能通过外部的类去改变里面的变量,这就反应了代理模式更侧重于代理对象的控制和访问。