JAVA의 행위 설계 모델과 책임 체인 모델에 대한 완전한 안내

5919 단어 programmingjava
이 블로그에서 우리는 행위 디자인 모델, 언제 어디서 우리가 이 특정한 모델을 사용할 수 있는지, 그리고 그 유형을 배울 것이다.
그 밖에 우리는 책임 체인 모델을 특히 주목할 것이다. 이것은 행위 디자인 모델이다.

무엇이 행위 설계 모델입니까?


대상 간의 상호작용을 더욱 강조하는 디자인 모델
말 그대로 대상이 자신의 책임/임무를 수행해야 한다는 책임 체인도 있다.
행위 디자인 모델에서 최소한의 하드 인코딩이 있어야 하고 대상은 느슨하게 결합해야 하며 일치성이 더욱 높아야 한다.
이제 결합과 연관이라는 두 용어를 이해하자.이것들은 디자인 모델과 소프트웨어 공학에서 중요한 용어들이다.
결합-결합은 대상 간의 상호 의존을 가리킨다.특정한 임무에 대해 대상 간의 의존성은 더욱 작아야 한다. 그렇지 않으면 한 대상의 고장이나 지연으로 인해 시스템 고장을 초래할 수 있다.
정합성 -정합성은 시스템에 부담을 주지 않고 서로 보완할 수 있도록 대상/모듈이 함께 작업해야 한다는 것을 의미한다.
자세히 보기: A Complete Guide On Structural Design Pattern In Java

비헤이비어 디자인 모드의 유형:


해석기 모드: 말 그대로 해석기 모드는 특정한 방식으로 모드를 해석하는 데 사용된다.
  • 중개 모델: 이 디자인 모델은 서로 다른 유형의 중개를 충당하여 그들이 적절하고 느슨한 결합 방식으로 통신할 수 있도록 한다.
  • 명령 모드: 클라이언트의 요청이 포장되어 명령으로 전환됩니다.그것 또한 데이터 구동 모델이라고도 부른다.
  • 상태 모델: 말 그대로 동종 중의 대상의 상태와 관련이 있다.
  • 책임 체인 모델: 우리가 대상 체인을 원할 때 사용한다.
  • Memento 모드: 객체의 상태를 이전 형식으로 변경하려면 이 디자인 모드를 사용합니다.
  • 템플릿 모드: 템플릿 모드에서 추상적인 클래스 설정이 이루어져 다른 클래스가 그것에 따라 사용할 수 있도록 한다.
  • 방문자 모드: 이 방법에서 방문자 클래스가 특정 요소의 알고리즘을 바꾼다.
  • 빈 대상: 빈 값이 있고 아무런 조작도 하지 않을 때 우리는 이런 모드를 사용합니다.
  • 정책 모드: 실행할 때 클래스의 알고리즘이나 행동을 변경하려면 이 모드를 사용할 수 있습니다.
  • 교체기 모드: 이것은 가장 흔히 볼 수 있는 디자인 모드 중 하나로 집합에서 순서대로 데이터에 접근해야 할 때 사용한다.자바에서, 교체기 모드도 교체기에 사용됩니다.
  • 관찰자 모드: 우리가 물체의 변화에 따라 반응을 관찰하고 싶을 때 우리는 관찰자 모드를 사용한다.한 대상이 실체 관계 중의 다른 대상과의 관계를 바꾸었을 때 우리는 관찰자 모델이 필요하다.

    무엇이 책임 체인 모델입니까?


    디자인 모델에서 대상은 체인 행위를 나타내는데 이것이 바로 책임 체인 모델이다.
    사용자가 요청을 보낼 때마다 대상 체인을 지나 모든 대상이 응답을 보낼 수 있습니다.따라서 물체 간의 결합이 가장 작다.

    책임 체인 모델을 사용하는 이점:
  • 시스템에서 결합이 적기 때문에 상호 의존성이 적다.
  • 더 적은 결합과 더 많은 일치성 때문에 구조가 더욱 유연해졌다.
  • 믿을 만한 것을 찾으세요Java Development Company?당신의 검색은 이것으로 끝냅니다.

    책임 체인 모델의 예:
    이제 책임체인 모델을 하나의 예로 이해하자.아래에 제시된 UML 그림은 이해하기 쉽도록 해 줍니다.

    Image Source:
    여기에 우리는 세 개의 서로 다른 기록기 종류가 있는데, 그것들은 주요 추상적 기록기 종류와 클라이언트 클래스를 확장했다.
    각 클래스에는 출력 정보, 오류 정보, 디버그 정보를 속성으로 하고 Logger, Message, display Log info를 메소드로 설정하는 등 고유한 속성과 방법이 있습니다.
    컨트롤러 기반 레코더 클래스에는 컨트롤러 기반 레코더가 있고 로그 정보를 방법으로 표시하지만 자신의 속성이 없습니다.디버그 기반 레코더는 디버그 기반 레코더 (int 레벨) 를 가지고 있으며 로그 정보를 방법으로 표시하지만 속성을 표시하지 않습니다.
    책임 체인 클라이언트로서의 클라이언트 클래스에는 de Chain()과main 방법이 있습니다.
    마스터 레코더 클래스
    public abstract class Logger {  
        public static int OUTPUTINFO = 1;  
        public static int ERRORINFO = 2;  
        public static int DEBUGINFO = 3;  
        protected int levels;  
        protected Logger nextLevelLogger;  
    public void setNextLevelLogger( Logger nextLevelLogger ) 
    {  
            this.nextLevelLogger = nextLevelLogger;  
        }  
            public void logMessage( int levels, String msg )
    {  
            if(this.levels <= levels){  
                displayLogInfo(msg);  
            }  
            if (nextLevelLogger != null) {  
                nextLevelLogger.logMessage(levels, msg);  
            }  
        }  
        protected abstract void displayLogInfo(String msg);  
    }  
    
    
    콘솔 기반 레코더 클래스
    public class DebugBasedLogger extends Logger {  
        public DebugBasedLogger(int levels) {  
            this.levels = levels;  
        }  
        @Override  
        protected void displayLogInfo(String msg) {  
            System.out.println("DEBUG LOGGER INFO: " + msg);  
        }  
    }
    
    
    오류 기반 레코더 클래스
    public class ErrorBasedLogger extends Logger {  
        public ErrorBasedLogger(int levels) {  
            this.levels=levels;  
        }  
        @Override  
        protected void displayLogInfo(String msg) {  
            System.out.println("ERROR LOGGER INFO: " + msg);  
        }  
    }
    
    
    클라이언트 클래스/마스터 클래스
    public class ChainofResponsibilityClient {  
        private static Logger doChaining(){  
              Logger consoleLogger = new ConsoleBasedLogger(Logger.OUTPUTINFO);  
    
              Logger errorLogger = new ErrorBasedLogger(Logger.ERRORINFO);  
              consoleLogger.setNextLevelLogger(errorLogger);  
    
              Logger debugLogger = new DebugBasedLogger(Logger.DEBUGINFO);  
              errorLogger.setNextLevelLogger(debugLogger);  
    
              return consoleLogger;   
              }  
              public static void main(String args[]){  
              Logger chainLogger = doChaining();  
    
                  chainLogger.logMessage(Logger.OUTPUTINFO, "Enter the sequence of values ");  
                  chainLogger.logMessage(Logger.ERRORINFO, "An error has occurred now");  
                  chainLogger.logMessage(Logger.DEBUGINFO, "This was the error now debugging is compiled");  
                  }  
    }  
    
    
    출력:
    능력 고객
    콘솔 레코더 정보:값 입력 순서
    콘솔 레코더 정보: 오류 발생
    오류 레코더 정보: 현재 오류 발생
    콘솔 레코더 정보: 오류입니다. 디버깅을 컴파일하고 있습니다.
    오류 레코더 정보: 디버깅을 컴파일하는 중 오류가 발생했습니다.
    디버그 기록기 정보: 오류입니다. 디버그를 컴파일하고 있습니다.

    결론
    따라서 본 블로그에서 우리는 행위 디자인 모델 중 하나인 책임체인 모델, 그의 용도, 장점, 그리고 이런 디자인 모델을 언제 사용하는지, 그리고 하나의 예를 중점적으로 배웠다.

    좋은 웹페이지 즐겨찾기