Don’t talk to strangers!🤫


デシメートルの法則


ブラックジャックの結果を出力する場合、ディーラーの最初のカードの部分だけを出力しなければならない.
コードコメントでは,数ビット法則の学習が提案されている.
dealer.cards.get(0).getDenomination()

数字の法則とは何ですか。


ウィキペディアでは
  • Each unit should have only limited knowledge about other units: only units "closely"related to the current unit.
  • Each unit should only talk to its friends; don't talk to strangers.
  • Only talk to your immediate friends.
  • 引用語でかっこいいので真似したい
    親しい友達とだけ話してみましょう.結局隣の相手だけがお互いを理解しています.
    関係の遠いオブジェクトは、どのような資料を持っているかを知るべきではありません.

    Why?


    デシメートルの法則を守らないと結合度やカプセル化に問題が生じる.
    あるオブジェクトが別のオブジェクトの要素を直接インポートすると、それらの関係が緊密になりすぎて、柔軟に変化できないからです.
    またgetに進み続けると,オブジェクトの情報は他のオブジェクトに不要に露出する.

    どうやって彼を守るの?


    直観的に言えば、注文すればいいです.
    dealer.getCards.getDeck().get(0)
    こちらです.
    dealer.getFisrtCard();
    
    getFirstCard(){
        return cards.getFirst();
    }
    
    getFirst(){
        return deck.get(0)
    }
    この方法で分離すればいいです.
    また、次のルールを適用する場合、このメソッドはすべてのルールを満たす必要があります.
  • 対象は自分の方法ですか?
  • メソッドのパラメータで変換されたオブジェクトのメソッドですか?
  • メソッドでオブジェクトを作成および初期化する方法ですか?
  • オブジェクトが
  • インスタンス変数として持つ方法ですか?
  • 複雑そうに見えますが...最終的には、オブジェクトが呼び出しポイントが直接所有するオブジェクトであるかどうかを追及するだけです.
    よく考えると、オブジェクト間でメッセージを送信し、getterの使用をできるだけ減らすように要求する一脈相承の物語のようです.

    短所


    包み方が多すぎて、もっと複雑になるかもしれません.
    規則に違反しない場合は、できるだけ割らないようにします.

    +)流し撮りが多いのは、公制の法則に反する事例でしょうか?


    デシメータの法則は「オブジェクトがどれだけ知っているか」であるため、ポイントによってオブジェクトの内部実装を露出しない限り、これは適用されません.

    +)資料構造で使うなら、必ず歌わなければならない場合もありますが、数字の法則を守るべきでしょうか?


    この時歌うことができます!質問されたオブジェクトがオブジェクトではなく資料構造であれば,内部を露出する必要があるため,公制法則を適用する必要はない.