読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

日記

オブジェクト指向設計実践ガイド

読んでる

class MacBookPro
  attr_reader :maker
  def initialize
     @maker = 'Apple'
  end
  def put
     put maker
  end

end

class Programmer
  attr_reader :computer

  def initialize
     @computer = MacBookPro.new
  end
  def machine
    put "I use #{computer_maker} 's PC"
  end
  
  def computer_maker
    computer.maker
  end
end

computer_makerメソッドは冗長な感じもするけど、もしこれをなくしてmachineメソッドの中からcomputer.makerを呼ぶとなると、依存が発生する。ProgrammerクラスというかmachineメソッドはMacBookProクラスのインスタンスがmakerというゲッターを持っていることを知っていなければならない。この例だと1ヶ所しかそのゲッターを呼ぶ場所はないからいいものの、複数箇所から呼んでいるとなると依存性は更に増す。ゲッターの名前を変えることになったら悲惨なことになる。だから冗長とも思えるcomputer_makerメソッドに全てを集める。

こういうのを見てみて思ったのは、クラス設計は対象クラスに徹底的に自分のやってることに責任を持たせなければいけないんだなということ。MacBookProインスタンスがいくらメソッド1つでちゃんとmaker名を返しますよと言っても、いくら簡単にMacBookProインスタンスが処理をこなそうとも、簡単に呼べようとも、直接叩くことはせずに自分のやり方を通して呼び出す。受注者が電話一本で午後イチには納品しますよ!なんていくら軽い事を言っても、いやこっちにはこっちの事情があんねんと言いながら発注元で稟議をかけて社内規定に則った上で発注する、みたいな。

筋トレ

100 JumpingJack 15 Burpee 15 PikePushup 20 JumpSquats 60s HighPlank 60s LowPlank