4

プロジェクトのビジネス ロジック モジュール内のクラスのドキュメントを作成するように依頼されました。クラスの作成方法にパターンがあることに気付きました。パターンはこんな感じ

    public class AModel(){
          //fields
          //getter and setters
    }

    public class AService(){

          public void processA(AModel model){
                  //creates instance of AModel, assigns values to fields
                  //calls ADaoService methods
          }  

    }

    public class ADaoService(){

           //has methods which call ADao methods
           //sample
           public AModel retrieveById(long id){
                 log.debug(...);
                 return (ADao.retrieveById(id));
           }

    }

    public class ADAo(){
            //has entityManager and some query

            public AModel retrieveById(long id){
                  return((AModel) entityManager.find(AModel.class, id));
            }
    }

私が理解していないのは、ADaoService メソッドは ADao メソッドを呼び出すだけなので、AService が ADao メソッドを呼び出すだけでなく ADaoService メソッドを呼び出す理由です。ADaoService は単なるコードの無駄のように思えます。それらは、Hibernate および JBoss サーバーを使用しています。私はこのタイプのアーキテクチャに慣れていません。誰かが私を理解するのを手伝ってくれることを願っています。ありがとう。

4

1 に答える 1

8

ええと、 ifADaoServiceが then への呼び出しを委譲する以外に何もしていないことADaoは明らかです。

将来の正当化に関しては、まあ、私の知る限り、典型的なレイヤリングにはレイヤが含まれていませんADaoService。私が働いているところにはありません。Hibernateのドキュメントで見たことがない...

アーキテクトが層に寛大だったか、または典型的でないシナリオを念頭に置いていたかのいずれかです。

レイヤーの現在の使用法がなく、将来の明確な使用法がない場合は、レイヤーを使用しない方がよいでしょう。

于 2012-08-16T06:17:27.063 に答える