まじやめて・・・。
Javaでこんな実装を依頼されてしまった。
※Javaで、といいつつJavaコードを書くのが面倒なのでRubyで例示します。
例えば文字列の処理をするStringAクラス、StringBクラス。
日付の処理をするDateAクラス、DateBクラス。
SQLの処理をするSqlAクラス,SqlBクラス。
があるする。
この全てをexecuteメソッドを持つAnyClassクラスを継承して、
て使わせるような設計を指示された。
当然Commandパターン的な意味合いもない。
つまりクラスには何も意味をもたせず、ただ単に何かを実行させる箱だという認識か。
オブジェクト指向で手続き型コーディングさせるの勘弁してください・・・
以下サンプルコード
class AnyClass def execute() execute_child end protected def execute_child;;end end class StringA < AnyClass protected def execute_child;puts "StringA";end end class StringB < AnyClass protected def execute_child;puts "StringB";end end class DateA < AnyClass protected def execute_child;puts "DateA";end end class DateB < AnyClass protected def execute_child;puts "DateB";end end class SqlA < AnyClass protected def execute_child;puts "SqlA";end end class SqlB < AnyClass protected def execute_child;puts "SqlB";end end any_classes = [StringA.new,StringB.new,DateA.new,DateB.new,SqlA.new,SqlB.new] any_classes.each {|any_class|any_class.execute}
出力
StringA StringB DateA DateB SqlA SqlB