画像処理ソフトウェアを使用して画像を処理した後、保存するフォーマットを選択する必要があります。ただし、基礎となるレベルでさまざまな形式で実装されたアルゴリズムは同じではなく、戦略パターンに適合するだけです。ポリシーパターンと単純な工場パターンの組み合わせを使用して開発する方法を示すプログラムを作成します。
アイデアは次のとおりです。
1.インターフェイスを使用してインターフェイスを定義し、インターフェイス内のsave()メソッドを定義します。
2。画像形式に従って異なるクラスを定義し、キーワードの道具を使用してこれらのクラスにインターフェイスを実装します。
3.選択を実装し、このクラスの選択を実装する方法を定義するクラスを作成し、メソッドの返品値は対応する画像保存クラスです。
4.メインメソッドにインターフェイスを実装します。
コードは次のとおりです。
コードコピーは次のとおりです。
パブリックインターフェイス画像aver {
void save(); // save()メソッドを定義します
}
パブリッククラスのgifsaverは画像を実装しています{
@オーバーライド
public void save(){// save()メソッドを実装します
System.out.println( "写真をGIF形式で保存");
}
}
パブリッククラスjpegsaverは画像を実装しています{
@オーバーライド
public void save(){
system.out.println( "jpg形式で画像を保存");
}
}
パブリッククラスのpngsaverは画像を実装します{
@オーバーライド
public void save(){
system.out.println( "PTION PNG形式で画像を保存");
}
}
パブリッククラスのTypeChooser {
public static imagesaver getsaver(string type){
if(type.equalsignorecase( "gif")){// if elseステートメントを使用して画像のタイプを決定する
new gifsaver()を返します。
} else if(type.equalsignorecase( "jpeg")){
新しいjpegsaver()を返します。
} else if(type.equalsignorecase( "png")){
新しいpngsaver()を返します。
} それ以外 {
nullを返します。
}
}
}
パブリッククラスユーザー{
public static void main(string [] args){
system.out.print( "ユーザーがGIF形式を選択しました:");
ImagesAver Saver = TypeChooser.getSaver( "gif"); //画像をGIFタイプとして保存するオブジェクトを取得します
saver.save();
system.out.print( "ユーザーがjpeg形式を選択しました:"); //保存した画像をjpegタイプオブジェクトとして取得します
saver = typechooser.getsaver( "jpeg");
saver.save();
system.out.print( "ユーザーが選択したpng形式:"); //画像をpngタイプとして保存するオブジェクトを取得します
saver = typechooser.getsaver( "png");
saver.save();
}
}
効果は写真に示されています: