LoginSignup
0
0

More than 5 years have passed since last update.

rubyで生成したインスタンスを使いまわし(singleton)

Posted at

一回生成したインスタンスを全体で使い回ししたい
具体的に言うとTwitter::REST::Clientで、毎度生成するみたいなのはなんか不経済な気がする。
Java方面から来たので、Springならconfigクラスで@Beanにしてってなもんですが、そんな感じのことをやりたい。

moduleを使ってみる

twitter_holder.rb
# frozen_string_literal: true
module TwitterHolder
  def self.client
    @client ||= Twitter::REST::Client.new do |config|
      config.consumer_key        = ''
      config.consumer_secret     = ''
      config.access_token        = ''
      config.access_token_secret = ''
    end
  end
end

これでTwitterHolder.cilentで使う形にしてみた。

singletonモジュールは使わないのか?

include Singletonしたとしても、結局同じインスタンスが返される処理は自分で書く必要があるはず。
あとTwitterHolder.instance.clientといった感じで、長い!
であればクラスメソッドでいいんじゃないかと思ったんですが、さて……

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0