Forums: Open Discussion (Thread #18427)

PL⇔BLのvalueobject (2008-04-23 14:58 by Anonymous #36248)

お世話になります。

PL層とBL層のやりとりはMapを使わず、
ValueObjectで行おうと思っております。

その際に、UserValueObjectの取得方法を
AbstractValueObjectクラスを作成し、
そのプロパティとして持とうと思います。


public abstract class AbstractValueObject {

private SampleUserValueObject userInfo = null;

public SampleUserValueObject getUserInfo() {
return userInfo;
}

public void setUserInfo(SampleUserValueObject userInfo) {
this.userInfo = userInfo;
}

}

他にBLogicのサブクラスのフィールドとして定義する方法も考えたのですが、
Mapを使わずにBL層でUserValueObjectを使いたい場合はどのような設計がよいとされているのでしょうか。

Reply to #36248×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: PL⇔BLのvalueobject (2008-04-23 17:56 by yggd #36253)

BL層でUserValuObject を使用する頻度が少ない場合、
常にUserVauleObject を渡すのではなく、ValueObject
の1フィールドとして渡す方法がよいものと考えます。

経験上のお話しになりますが、ログオン処理以降、UserValueObject は主にログオン済みチェックで使用されるのみで、ログオン中のユーザ情報をBL 層にて扱う頻度は
それほど多くありませんでした。

BL層で不要な ValueObject を渡してしまうと、BL 層では誤用の危険が伴いますので、なるべく必要十分の情報を渡すことをおすすめいたします。

無論、ビジネスルールの洗い出しなどにより、 BL 層での UserVaueObject の使用頻度が高い場合は、
いただきましたコーディング例にあるように基底 ValueObject として渡す方針でもよいと考えます。
Reply to #36248

Reply to #36253×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: PL⇔BLのvalueobject (2008-04-24 11:24 by Anonymous #36257)

早速のご回答、ありがとうございます。
今回はUserValueObjectの使用頻度が高くなりそうなので、
基底クラスを渡す方針でいこうと思います。

ただ、BL層では参照のみにさせたいので、
cloneでも渡そうと思っております。
Reply to #36248

Reply to #36257×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login