非常に大きく肥大化したクラスがあり、それを個別のファイルに分割したいのですが、ユーザーに対して完全に透過的であり、クラスを使用する既存のプロジェクトと互換性がある必要があります。
特に、私は自分のImageMatrix
クラスを持っており、それは大量の単項関数、スカラーを使用した大量のバイナリ関数、別のイメージを使用した大量のバイナリ関数などを定義しています。クラスをクリーンで保守可能に保つために、各クラスを置きたい別のファイルの演算子の。
これらのメソッドをカット アンド ペーストしてファイルに貼り付け、ソースに含める方法はありますか?
だから私はまだこれを行うことができればいいのですが、メソッドは実際には別のファイルに存在します:
ImageMatrix img = new ImageMatrix(800, 600, 3);
img.clear(0.5f, 0.0f, 0,0f);
img.addSelf(anotherImg);
img.normalize();
img.abs();
img.addSelf(0.5);
実装はパフォーマンスに対して非常に最適化されているため、各メソッドは約 15 ~ 30 行のコードであり、Bufferedimage やプレーンな int[] でさえ達成することは不可能です。多くのコードの重複があり、これが同様のメソッドをグループ化する主な理由です。関数を追加したり、グローバルな動作 (エラー チェックなど) を変更したりしても、簡単に一貫性を保つことができます。