0
点赞
收藏
分享

微信扫一扫

elixir defdelegate 使用

delegate 模式,在不少语言都支持,有些是隐式的(一些早期语言),有些是显式的(新语言,kotlin,swift等)
elixir 也支持delegate 处理,还是比较方便的,以下是一个简单的使用

定义原始方法

  • default.ex

 


defmodule Default do
  def login(name,password) do
    IO.puts "from Default.login"
    IO.puts "name: #{name}---password: #{password}"
  end
end
定义使用
对于EctoApp 模块中的login/2 方法使用Default 中的
 
defmodule EctoApp do
  defdelegate login(name,password), to: Default
end

def login(name,password) do

  • 效果

elixir defdelegate 使用_swift

说明

delegate 模式 在实际开发中还是比较常见的,现在不少新的开发语言都直接支持了

参考资料

https://hexdocs.pm/elixir/1.12.3/Kernel.html#defdelegate/2
https://kotlinlang.org/docs/delegation.html
https://developer.apple.com/documentation/swift/using-delegates-to-customize-object-behavior
https://www.swiftbysundell.com/articles/delegation-in-swift/

举报

相关推荐

0 条评论