bean
java beanはrubyになるとどうなるか。ですが
よくよく調べてみるとjavaからrubyへ移行してく人向けに日経ソフトウェア2006年10月号に詳しくのってました。
あと、ネットならkbmjとかにもありました。
下調べが足りてないわけですが、自分の勉強も兼ねてるので
なるべくネタが被らないようにマッタリとやってきます。
で、beanはrubyだとどうなるかですが、
今回はどらえもんの4次元ポケットを題材にしてみることにしました。
Pocket.java
public class Pocket { private String item; public String getItem() { return item; } public void setItem(String item) { this.item = item; } }
implements Serializableがないとか、細かいことは言いっこなしで...
このポケットを使って未来の道具をやりとりするコードは、
Dora.java
public class Dora { public static void main(String[] args) { Dora dora = new Dora(); dora.exec(); } private void exec() { String smallright = "スモールライト"; Pocket pocket = new Pocket(); pocket.setItem(smallright); System.out.println(pocket.getItem() + "〜!"); } }
テレ朝からクレームが来ないか、ちょっと心配になってきました...
とりあえず、これでbeanを使うコードのできあがりです。
ruby版だと、いろんな所でかかれているように
ゲッター/セッターがなくなり、attr_accessorという定義を書きます。
これはどうやらメソッドのようです。
このattr_accessorを使って四次元ポケットを書くと
pocket.rb
class Pocket attr_accessor :item end
このポケットを使うどらえもん側のコード、dora.rbです。
require "pocket" class Dora def exec smallright = "スモールライト" pocket = Pocket.new pocket.item = smallright puts smallright + "〜!" end end dora = Dora.new dora.exec
attr_accessorを使うとゲッター/セッターを使うよりコード量は減りますね。
eclipseとか使えば、自動生成ではあるんですが。
ただし、bean相当を操作する時にsetナニガシ("もごもご")と書かずに
プロパティを設定するような書き方ができるのが分かりやすいと思います。