高田です。
最近、JavaのプログラムをRubyに書き直していて、思ったのですが、
型のあるオブジェクト指向言語で書かれたプログラムをRubyで書き直すとき、メソッ
ドの引数が、特定のクラスのオブジェクトでないと処理に責任がもてないことがある
ような気がします。
で、
def method_only_for_Integer(aInteger, object)
if !(aInteger.kind_of?(Integer)) then
printf("method_only_for_Integer is only for Integer, Object.")
end
#実際の処理
end
みたいな、処理を結構書くことになってしまいます。こういうのがあると、コードが
読みにくくていやなんですが、こういうのをもっとわかりやすく書く、あるいは、こ
ういうことを考えなくても良いような、設計上のコツのようなものというのはあるで
しょうか?
ひょっとしたら、
def a_method(classname1:objectname1, classname2:objectname2)
(objectname1がclassname1のオブジェクトでないときには、メソッドを呼ばない
で、例外を発生する。classname:がないときには、どのようなクラスのオブジェクト
でも引数として受け付ける)
みたいな、型チェックまがいの文法をつくるようなことでもしないと、望み薄なんで
しょうか?
*** Hideaki Takata Profile ***
e-mail
private : hideakit / d3.dion.ne.jp
univ : u0601043 / ue.ipc.hiroshima-u.ac.jp
URL : http://www.jws.sis.co.jp/~alife