java代理模式与java语言的封装性是不是相矛盾?

来源:百度知道 编辑:UC知道 时间:2024/07/07 10:12:43

不矛盾

面向对象的核心思想就是:各司其职,各尽所能。

比如:银行取款机,他给你一个接口就是可以取款,存款。你不需要知道它内部是如何实现,你需要按存款,存款,就能实现这些功能,是因为它封装了实现这些的具体过程

代理模式,是一种设计模式的方法,有效的利用代理模式可以让程序的代码重用性大大的提高。一样的代码不写两次,也是java开发的一个要点。
还是用取款机做为例子

银行取款机其实就是代理模式的很好体现,因为它用EJB或者webservices来实现方法过程的调用。比如:查余额,我先要获得我账号上的余额。这时就需要调用一个方法,获得余额的方法。这个方法不管是用什么语言写的,可以是java,.net等等。我在取款程序中调用它即可,也不需知道它内部是怎么实现获的余额。因为不同银行的系统不一样。
所以它实现的是:你看上去你什么银行卡插进去都能查余额。可是这个功能不是这个取款机实现的,取款机做的只是调用查余额的方法,不同的银行会做自已的查余额方法。这就是代理模式的一种理解

不知道有没有说清楚。

代理模式其实就是一种封装~~

即:将原始类进行封装并在其基础上增添新的功能。