0

ビジネス機能を実行するクラスがあり、エントリポイント メソッドによって複数のメソッドが呼び出されています。

public class Tool
{
     public void runTool()
     {
         methodA();
         methodB();
         methodC();
         printToolSummary();
     }
}

呼び出されたこれらの各メソッドmethod*は、特定のサブ機能を実行します。これらの各メソッドで関心のある結果/属性を要約オブジェクトに収集したいと思います。method*これらのメソッドによって返される値は 1 つではありません。

私は、関心のあるすべての属性を含む単一のオブジェクトを考えていました。このオブジェクトを各メソッドに渡し、そのメソッドに属性を設定させましたが、何とか防ぐ方法がないため、変更可能なオブジェクトを操作するのは正しくないように思えますmethodA が更新すべきではない属性を更新していないか、心配しすぎているのでしょうか?

4

2 に答える 2

4

メソッドがオブジェクトの一部に触れてはならないことに懸念がある場合は、メソッドに渡すオブジェクトにいくつかのインターフェイスを実装し、それぞれが動作するメソッドに触れさせたいプロパティのみを公開する必要があります。

したがって、methodA はタイプ A のクラスを期待でき、methodB はタイプ B のクラスを期待できます。ここで、A と B はインターフェイスです...

それ以外の場合、アプローチに問題はなく、かなり一般的です。

于 2013-05-20T20:50:21.560 に答える
1

メソッドごとにサブクラスを含む複雑なオブジェクトを使用するのはどうですか。例えば:

public class ResultA { // some attributes for Method A }

public class ResultB { // some attributes for Method B }

public class ResultC { // some attributes for Method C }


public class Result {

    private ResultA resultA;
    private ResultB resultB;
    private ResultC resultC;
}
于 2013-05-20T20:50:09.903 に答える