日期:2014-05-20  浏览次数:20715 次

在JAVA中有委托这个专业术语吗?
有些地方用委托来实现。。。。

------解决方案--------------------
参考http://www.javaeye.com/topic/29541

委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。 
“委托”在C#中是一个语言级特性,而在Java语言中没有直接的对应,但是我们可以通过动态代理来实现委托!
------解决方案--------------------
委托貌似是一种设计模式
------解决方案--------------------
那 依赖注入 和 控制反转 是属于设计模式还是设计思想啊 ?
------解决方案--------------------
有啊。比如:
Java code
public void a() {
   System.out.println("Hi!");
}

------解决方案--------------------
没有吧,除非说是针对某个单词的另一种的翻译
------解决方案--------------------
以前没遇到过,学习了。
------解决方案--------------------
探讨
有啊。比如:
Java codepublicvoid a() {
System.out.println("Hi!");
}
写成下面这样的话:
Java codepublicvoid a() {
b();
}publicvoid b() {
System.out.println("Hi!");
}
就表示将 a() 的内容委托给 b() 了。可见委托这个词真 TM 专业。

------解决方案--------------------
委托一般称为委托调用。

代码编写有个这样的原则:能不用继承就不用继承,能使用委托实现的就不使用继承。两个类有明显示的层级关系时使用继承,没有明显的层级关系,仅仅是为了在一个类中使用另一个类的方法时应该使用委托。

根据《重构》一书称:现在有滥用继承的趋势,JDK 中 Stack 就是一个滥用继承的典型!

java.util.Stack 继承自 java.util.Vector,其实 Stack 与 Vector 在用途上完全是风马牛不相及的两个容器。
------解决方案--------------------
jdk的api里说的是允许将一个Vector视为一个Stack 
从理论上和本质上来说没有什么问题 堆栈其实也是向量 反正是线性结构
是不是一个栈 取决于对这个线性结构怎么操作

不过这个问题嘛 公说公有理婆说婆有理
------解决方案--------------------
委托是 面向对象术语。
C# 的委托是将函数指针封装为对象类型实现的。(安全的函数指针)
Java 没有在语言中直接实现。一帮通过 单方法接口实现
------解决方案--------------------
有的,
比方说java事件委托机制的概念,即一个事件源产生一个事件并将它法受到一个或多个监听器那里。监听器等待事件,知道收到一个事件。一旦事件被接受,监听器将会处理这个事件,让后返回相应的值。
------解决方案--------------------
可以用java语言实现委托吧,设计模式。。。

------解决方案--------------------
就是代理, PROXY, 是设计模式的一种.

提倡以后都用英文正名, 不然说法太不统一了.

比如设计模式中有一个Facade, 就被翻译得天花乱坠的...
------解决方案--------------------
java里是一种设计模式
C#里有种类型
------解决方案--------------------
swing的事件处理模型就是一种基于委托的模型
------解决方案--------------------
探讨
jdk的api里说的是允许将一个Vector视为一个Stack
从理论上和本质上来说没有什么问题 堆栈其实也是向量 反正是线性结构
是不是一个栈 取决于对这个线性结构怎么操作

不过这个问题嘛 公说公有理婆说婆有理

------解决方案--------------------
有,而且用的地方还不少,比如struts1的控制流程就是利用的委托,即ActionServlet接到请求后委托给RequestProcessor 去处理不同模块的请求,spring,EJB中的动态代理也都是基于此实现。