オブジェクト向けオブジェクト向け設計五原則SOLID

2482 ワード

1.凝集度と結合度

  • 良いソフトウェア設計は結合度を低減し、凝集度
  • を高めることを要求する.
  • 結合度
  • モジュール(クラス)間の相互依存度を示す指標であり、結合度が低いとモジュール間の相互依存性が低下し、オブジェクトの再利用とメンテナンスがより有利になる
  • .
  • 凝集度
  • モジュールの内部コンポーネント間の機能的相関により、高度に密集したモジュールが1つのタスクに集中し、独立し、
  • の再利用とメンテナンスが容易になります.

    01. SPR(Single Responsibility Principle)

  • クラスを変更した理由は1つだけです.


  • プロセス向け符号化
  • class Unit {
    	private String name;
        private int speed;
        
        public void attack() {
        
        }
        
        public void move() {
        	if (name.equals("저글링")
            	speed += 3;
            else if (name.equals("탱크")) {
            	if ("탱크 모드")
                	speed = 0;
                else
                	speed = 10;
            }else if(name.equals("정찰기")) {
            	speed = 15;
                	충돌 = false;
            }
        }
    }
  • オブジェクト向け符号化
  • class 저글링 extends Unit {
    	public void move() {
        		this.speed += 3;
        	}
    }
    
    class 탱크 extends Unit {
    	public void move() {
        		if ("탱크 모드")
            		this.speed = 0;
           		else
            		this.speed = 10;
        	}
    }
    
    class 정찰기 extends Unit {
    	public void 정찰기() {
        	this.충돌 = false;
        }
    	public void move() {
        		this.speed = 15;
        	}
    }

    02.開放式閉鎖の原則

  • は自分の拡張に対して開放的であり、周囲の変化に対して閉鎖的であるべきである.
  • 高度なインタフェースまたは中間インタフェースは、変化に対して閉じられていますが、インタフェースは外部の変化に対して
  • を開くことができます.
  • これらの部分はJDBCやMybatis、HibernateなどのJAVAでStreamで見つけることができます
  • 03.LKSP(Likkov Substitution Principle)リスク交換の原則

  • サブタイプは、常に自分のベース(親)タイプに置き換える必要があります.
  • 04.インタフェース分離の原則

  • クライアントは、自分が使用しない方法に依存することはできません.
  • プロジェクトの要件と設計に基づいて、SRP(単一責任原則)/ISP(インタフェース分離原則)を選択します.
  • 05.依存反転の原則


    自分よりも変わりやすいものに頼らないでください.
    これも
  • 開発閉鎖原則から考察した部分である.
  • SOLIDは、オブジェクト向けの4つの特性に基づいて、類似の形状を有する.