`
默海飞瀑
  • 浏览: 6256 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

A implementation of delegate pattern (1)

    博客分类:
  • Ruby
阅读更多
First of all, use SimpleDelegator class
1.first new a class
2.new another class extends SimpleDelegator,and donot forget require "delegate" at top of file
3.in this subclass ,super(obj) should be added in end of method initialize
4.let's look at code

require 'delegate'
class Hello
    def helloworld()
        "hello world"
    end
end
class MyDelegate < SimpleDelegator
    def initialize
        @hello = Hello.new
        super(@hello)
    end
    def setObj
        __setobj__(@hello);
    end
end
hello =  MyDelegate.new
hello.setObj
puts hello.helloworld


and then output "hello world" string

分享到:
评论

相关推荐

    简单的delegate实现

    在iOS开发中,Delegate是一种非常重要的设计模式,它允许对象之间进行通信,特别是当一个对象(委托者)需要通知另一个对象(委托对象)某些事件发生时。本文将深入讲解“简单的Delegate实现”,并以实际代码为例,...

    iOS学习笔记3---delegate五步曲,轻松学会使用delegate

    在iOS开发中,Delegate是一种非常重要的设计模式,它允许对象之间进行通信,使得一个对象能够对另一个对象的行为进行响应。本篇文章将通过“delegate五步曲”,帮助你深入理解并熟练掌握如何在iOS应用中使用Delegate...

    iOS Delegate传值通俗理解

    在iOS开发中,Delegate是一种非常重要的设计模式,用于对象间通信。它允许一个对象(委托者)通知另一个对象...通过实践像“PassValueByDelegate.2014.11.1”这样的Demo,可以帮助开发者更深入地理解和应用Delegate。

    iPhone编程delegate示例

    1. **定义协议**:首先,我们需要定义一个协议,比如`MyDelegateProtocol`。在`.h`文件中声明协议,列出将要实现的方法。例如: ```objc @protocol MyDelegateProtocol - (void)handleAction:(NSString *)...

    Delegate 小Demo

    1. **定义Delegate类型** 在C#中,我们可以使用`delegate`关键字来定义一个新的Delegate类型。定义Delegate需要指定其返回类型和参数列表,这应与它将引用的方法的签名匹配。例如: ```csharp public delegate ...

    swift-多delegate的使用

    if let index = delegates.firstIndex(of: delegate) { delegates.remove(at: index) } } func broadcastEvent(event: String) { for delegate in delegates { delegate.handleServerEvent(event: event) ...

    C# Delegate小例子

    1. **Delegate概念**: Delegate在C#中是一种类,它代表对方法的引用。这种引用是类型安全的,意味着在编译时就会检查方法签名是否与委托类型匹配。Delegate可以存储一个或多个方法的引用,支持多播,即一个委托...

    Delegate小Demo

    1. Delegate基本概念: Delegate是一种引用方法的类型,可以看作是方法的“引用”。它定义了一组参数和一个返回值,与之匹配的方法必须具有相同的签名。Delegate实例可以用来调用被引用的方法,这使得我们可以传递...

    代理delegate_execute.exe

    delegate_execute.exe

    C#例子代码 A0031_delegate

    C#例子代码 A0031_delegateC#例子代码 A0031_delegateC#例子代码 A0031_delegateC#例子代码 A0031_delegateC#例子代码 A0031_delegateC#例子代码 A0031_delegateC#例子代码 A0031_delegateC#例子代码 A0031_...

    delegate一对多

    1. 定义一个协议:首先,我们需要定义一个协议,其中包含需要被实现的方法。这些方法将被委托对象调用,以通知它们的代理。 2. 实现协议:多个对象可以遵循这个协议,并实现协议中的方法。 3. 存储委托:创建一个...

    OC中以delegate形式页面传值

    1. 为了防止循环引用,通常使用`weak`关键字修饰委托对象。 2. 遵循协议的类需要确保在不再需要接收委托消息时,将委托设为`nil`。 3. 如果多个页面可能成为委托,确保正确处理这种情况,避免信息错乱。 通过以上...

    Delegate&Block作回调

    本示例主要探讨了两种回调方式:Delegate(代理)和Block(块)。这两种方式各有特点,开发者可以根据实际需求选择合适的实现方式。 首先,我们来详细了解一下Delegate。Delegate是一种协议(Protocol)导向的回调...

    IOS源码之页面之间数据传送(通过delegate)

    在Page A中,我们需要创建一个`PageB`的对象,并将其`delegate`属性设置为Page A自身。这通常在`prepare(for:sender:)`方法中完成,因为这是在页面跳转前被调用的: ```swift override func prepare(for segue: ...

    delegate与block的使用

    1. **可选性**:Delegate的方法通常是可选的,开发者可以根据需求选择实现哪些方法;而Block必须提供完整的代码实现,不能省略。 2. **内存管理**:Delegate可能导致循环引用,需要使用weak或unowned关键字来避免;...

    C++中实现委托(delegate)

    网上有很多关于C++ delegate机制的文章,但都讲的是函数指针的内容,上周就C++中实现C#的delegate机制的问题研究了好几天,查看了很多相关资料,才解决了问题,现将我写的C++ delegate测试程序贴出来,希望能帮到有...

    代理Delegate示例

    在C#编程中,"代理Delegate"是一种强大的特性,它允许我们传递方法作为参数,或者在不相关的类之间建立事件处理。"冒泡排序"则是一种基础的排序算法,通过不断交换相邻位置的元素来逐步排序数组。在这个"代理...

    ios设计模式delegate

    ios设计模式delegate 示例 ,导航功能的两个视图控制器(用push方式从一个窗口推到另一个窗口),第二个窗口创建两个按钮,标题分别为红色和绿色,点相应的按钮弹回前一个窗口,同时前一个窗口的背影色变成按钮标题...

    C# Delegate讲解

    参数个数:1个。 定义委托后,可以将其指向要调用的方法,并使用委托调用该方法。例如: ```csharp class Program { public delegate void DelegateDemo(string info); public static void Test(string info) {...

    用Java实现23种设计模式

    责任链模式(Chain of Responsibility Pattern) 命令模式(Command Pattern) 解释器模式(Interpreter Pattern) 迭代器模式(Iterator Pattern) 中介者模式(Mediator Pattern) 备忘录模式(Memento ...

Global site tag (gtag.js) - Google Analytics