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

A implementation of delegate pattern (2)

    博客分类:
  • Ruby
阅读更多
Secondly,write a delegator in another way
1.Code a class extends DelegateClass,and set a parameter that you want to use
2.Implementing your method initialize ,and donot forget to write super method.
3.Implementing your method which match to a parameter before you passed
4.And now,let's code
require 'delegate'

class MyDelegator < DelegateClass(Array)
  def initialize(array)
    super(array)
  end
  def [](*n)
    val = super(*n)
    #Add your logic here
  end
end


and now ,when u add your logic at method [](*n),the class MyDelegator willdelegate method [] of a Array ,just like this

array = %w{22 33 33 44}
myDelegator = MyDelegator.new(array)
puts array[0..3]

It will be output the result that u changed in your logic.
分享到:
评论

相关推荐

    简单的delegate实现

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

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

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

    iOS Delegate传值通俗理解

    在iOS开发中,Delegate是一种非常重要的设计模式,用于对象间通信。它允许一个对象(委托者)通知另一个对象(委托对象)关于特定事件的发生。在iOS应用中,Delegate经常用于控制器间的通信,如UIViewController和...

    iPhone编程delegate示例

    2. **实现协议**:接着,在需要接收委托通知的类中,声明遵循协议。例如,在`ViewController`类中: ```objc @interface ViewController : UIViewController ... @end ``` 并在`.m`文件中实现协议方法: ```...

    objective-c委托机制(二)(delegate2)

    在“objective-c委托机制(二)(delegate2)”这个主题中,我们将深入探讨委托的实现代码。 首先,理解委托的核心概念。在Objective-C中,委托是通过协议(Protocol)来定义的,它声明了一组方法,这些方法可以被...

    Delegate 小Demo

    2. **实例化Delegate** 我们可以使用`new`关键字和方法名来实例化一个Delegate对象,或者使用lambda表达式。以下是如何关联一个方法到Delegate实例的例子: ```csharp public class MyClass { public void ...

    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小例子

    2. **创建Delegate**: 创建自定义委托类型需要使用`delegate`关键字,定义其返回类型和参数列表,与目标方法的签名保持一致。例如,我们可以定义一个名为`MyEventHandler`的委托,用于处理事件: ```csharp ...

    Delegate小Demo

    2. 声明Delegate: 首先,我们需要创建一个Delegate类型,它定义了接受的参数和返回类型。例如,创建一个无参数且无返回值的Delegate类型: ```csharp public delegate void MyDelegate(); ``` 3. 实例化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一对多

    2. 实现协议:多个对象可以遵循这个协议,并实现协议中的方法。 3. 存储委托:创建一个数组或其他集合类型来存储遵循协议的对象实例。 4. 注册和移除委托:当需要接收通知的对象创建或销毁时,需要将其添加到或从...

    OC中以delegate形式页面传值

    2. 遵循协议的类需要确保在不再需要接收委托消息时,将委托设为`nil`。 3. 如果多个页面可能成为委托,确保正确处理这种情况,避免信息错乱。 通过以上步骤,我们就能够使用OC中的`delegate`模式实现在页面间传递值...

    Delegate&Block作回调

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

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

    2. **实现代理(Implement Delegate)** 在发送数据的页面(Page A),我们需要让接收数据的页面(Page B)遵循这个协议。在Page B的接口中声明遵循`DataTransferDelegate`,并实现协议中的方法: ```swift ...

    delegate与block的使用

    2. **内存管理**:Delegate可能导致循环引用,需要使用weak或unowned关键字来避免;Block内部会捕获引用,也可能导致循环引用,但可以通过__block修饰符来解决。 3. **匿名性**:Block是匿名的,可以直接嵌入到代码...

    C++中实现委托(delegate)

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

    用Java实现23种设计模式

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

    ios设计模式delegate

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

    C# Delegate讲解

    C# Delegate讲解 C# Delegate是.NET Framework中的一种重要机制,它允许开发者在程序中动态地调用方法。Delegate相当于函数指针,它指向程序中另一个以后会被调用的一个或多个方法。委托包含三个重要的信息:所调用...

Global site tag (gtag.js) - Google Analytics