【问题标题】:What is delegation? When would I want to use it?什么是委托?我什么时候想使用它?
【发布时间】:2011-06-09 17:47:20
【问题描述】:

在 OOP 中,提到了一个术语委托。这是如何在课堂上建模的?我在 yahoo 等上进行了搜索,但得到了代表的链接。

【问题讨论】:

    标签: oop design-patterns delegation


    【解决方案1】:

    假设你有 CarEngine 类:

    public class Car {
       private Engine engine = new Engine(); //or inject it externally
    
       public void start() {
           engine.start();
       }
    }
    

    在此示例中,Car 代表底层 Engine。汽车的使用者不能直接启动发动机(除非他是机械师)。但他可以告诉汽车启动,而汽车又会告诉引擎启动。

    每当您使用对象组合并且需要使用组合对象之一的方法时,您都希望使用它。在这种情况下,您创建一个委托给它的方法。

    【讨论】:

    • +1 对此进行扩展。继承也进行委派,隐含地委托给父母。您上面描述的是显式委托。
    • @jer 我认为继承不做委托。委托正在处理对其他对象的责任。另一个对象可以属于同一类或完全不同的类。而在继承的情况下,每个对象共享相同的方法集。
    【解决方案2】:

    委托就像继承,除了 class2 从 class1 复制函数和变量,class2 只是让 class1 为它做这些事情,而 class2 专注于做和拥有你给它的额外函数和变量。这样做的一个明显优势是它可以节省您的计算机空间。

    【讨论】:

    • 这似乎没有添加任何已接受的答案没有添加的内容。
    猜你喜欢
    • 2011-01-12
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    相关资源
    最近更新 更多