貴様ら!オブジェクト指向を教えろ!!
■ このスレッドは過去ログ倉庫に格納されています
0287デフォルトの名無しさん
NGNGたとえば、ファイルを圧縮するクラスを作ろうとしたと思いねぇ。
class FilePress {
public void compress(String inputfile, String outputfile);
public long expand(String pressedfile)
}
ところが、圧縮アルゴリズムはランレングスで実装したのだが、
あとからLZHやらZIPやらSITやらのアルゴリズムを追加したく
なったとする。圧縮アルゴリズムが増えるたびにメソッドを実装
しなおすのは効率が悪いので、
interface PressAlgorithm {
public void compress(String inputfile, String outputfile);
public long expand(String pressedfile)
}
abstract class FilePress imprements PressAlgorithm {
}
とかやっといて、FilePressLZHとかFilePressZIPとかのクラスを
FilePressから継承して作れば、追加アルゴリズムだけを作れば
すむことになる。
■ このスレッドは過去ログ倉庫に格納されています