JAVA의 행위 설계 모델과 책임 체인 모델에 대한 완전한 안내
5919 단어 programmingjava
그 밖에 우리는 책임 체인 모델을 특히 주목할 것이다. 이것은 행위 디자인 모델이다.
무엇이 행위 설계 모델입니까?
대상 간의 상호작용을 더욱 강조하는 디자인 모델
말 그대로 대상이 자신의 책임/임무를 수행해야 한다는 책임 체인도 있다.
행위 디자인 모델에서 최소한의 하드 인코딩이 있어야 하고 대상은 느슨하게 결합해야 하며 일치성이 더욱 높아야 한다.
이제 결합과 연관이라는 두 용어를 이해하자.이것들은 디자인 모델과 소프트웨어 공학에서 중요한 용어들이다.
결합-결합은 대상 간의 상호 의존을 가리킨다.특정한 임무에 대해 대상 간의 의존성은 더욱 작아야 한다. 그렇지 않으면 한 대상의 고장이나 지연으로 인해 시스템 고장을 초래할 수 있다.
정합성 -정합성은 시스템에 부담을 주지 않고 서로 보완할 수 있도록 대상/모듈이 함께 작업해야 한다는 것을 의미한다.
자세히 보기: A Complete Guide On Structural Design Pattern In Java
비헤이비어 디자인 모드의 유형:
해석기 모드: 말 그대로 해석기 모드는 특정한 방식으로 모드를 해석하는 데 사용된다.
무엇이 책임 체인 모델입니까?
디자인 모델에서 대상은 체인 행위를 나타내는데 이것이 바로 책임 체인 모델이다.
사용자가 요청을 보낼 때마다 대상 체인을 지나 모든 대상이 응답을 보낼 수 있습니다.따라서 물체 간의 결합이 가장 작다.
책임 체인 모델을 사용하는 이점:
책임 체인 모델의 예:
이제 책임체인 모델을 하나의 예로 이해하자.아래에 제시된 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");
}
}
출력:능력 고객
콘솔 레코더 정보:값 입력 순서
콘솔 레코더 정보: 오류 발생
오류 레코더 정보: 현재 오류 발생
콘솔 레코더 정보: 오류입니다. 디버깅을 컴파일하고 있습니다.
오류 레코더 정보: 디버깅을 컴파일하는 중 오류가 발생했습니다.
디버그 기록기 정보: 오류입니다. 디버그를 컴파일하고 있습니다.
결론
따라서 본 블로그에서 우리는 행위 디자인 모델 중 하나인 책임체인 모델, 그의 용도, 장점, 그리고 이런 디자인 모델을 언제 사용하는지, 그리고 하나의 예를 중점적으로 배웠다.
Reference
이 문제에 관하여(JAVA의 행위 설계 모델과 책임 체인 모델에 대한 완전한 안내), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tarungurang/a-complete-guide-on-behavioral-design-pattern-and-chain-of-responsibility-pattern-in-java-40g4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)