ブラックトランザクションの最終コメントの整理
3225 ワード
最終コメントの整理🎉
すべての質問の答えとコードコメントを整理📝
PRリンク:https://github.com/woowacourse/java-blackjack/pull/323
1. DTO
Q.DTOはドメインオブジェクトが持つすべての属性を持つ必要はありませんか?必要に応じてドメインが持たない属性もDTOを持つことができますか?規定のルールがあるかどうか知りたいです!
A.良いDTOはドメインオブジェクトのすべての属性を持つ必要はありません.ビューに余分なデータを追加する必要がないためです.また、必要に応じて、ドメインが持たない属性を持つこともできます.
いいですよ.(例えば、exを計算してより高い値を表すフィールドなど)
Q.DetamingとSuitを出力形式に変換する位置をビューに変換する必要はありますか?これで、DTOで作成したViewクラスにアクセスし、情報を置き換えて保存しています.DTOからViewへ
私たちは彼に近づくのを避けるべきですか?public static CardDto from(Card card){
String denomination=DenominationView.getName(card.getDenomination());
String suit=SuitView.getName(card.getSuit());
return new CardDto(denomination,suit);
}
A.データ転送の役割を果たすだけで十分ですが、ここでデータを入力するとさらに複雑になります.タスクにdtoを書く必要はありませんが、すでに実装されています.データ転送ロールとして使用するだけでいいのではないでしょうか.
2.カードの出力フォーマットを変更した場合?
public static CardDto from(Card card){
String denomination=DenominationView.getName(card.getDenomination());
String suit=SuitView.getName(card.getSuit());
return new CardDto(denomination,suit);
}
ビューでDetamingとSuitの名前を管理すると、ビューがドメインを知らないという原則に反するのではないでしょうか.
Reference
この問題について(ブラックトランザクションの最終コメントの整理), 我々は、より多くの情報をここで見つけました https://velog.io/@chawani47/블랙잭-미션-최종-리뷰-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol