디자인 패턴–명령 디자인 패턴 단순화

많은 명령 패턴 설명이 있지만 블로그/게시물에 제공된 예제를 소화하거나 이해하는 것이 조금 어렵다는 것을 알았습니다.
그래서 여기서 내가 이해 한 방식으로 설명하려고 노력할 것입니다.”………..””………..””………..””………..””………..””………..”. 좋은 옛날;)

우리는 온/오프,증가/감소 볼륨에 대한 모든 노브를했다.2219>

모든 것이 잘 작동,좋은,유일한 문제는 사람이 온/오프 텔레비전을 전환하거나 볼륨을 감소/증가하려는 경우였다,그들은 텔레비젼에 모든 길을 가서 노브를 사용했다.

이제 객체 지향 방식으로 생각하십시오. 텔레비젼은 가동/방법/기능 또는”명령”의 낱단이 있는 목표에는이다. 우리는 직접 이러한 명령을 호출하는 텔레비전 객체에 액세스 할 수 있습니다.

이 접근 방식의 문제점은 무엇입니까?다른 장치가”셋톱 박스”가 동일한 기능을 원한다고 말하면 동일한 작업을 재사용 할 수있는 방법이 없습니다.”범용 원격 제어”는”명령 호출”을 다시 사용할 수 없습니다.”

우리는 어떻게 이것을 해결할 수 있습니까?

텔레비젼이”다른 목표”에 공용영역의 인스턴스를 주어서 온/오프 및 다른 기능을 실행하고 이 방법/가동을 드러내는 공용영역이 다는 것을 상상하십시오. 그것은 우리의 문제를 해결할 수 있습니다. 코드:

첫째,우리는 온/오프 작업이 텔레비젼 클래스를 만들 것입니다.

자바
텔레비젼.자바

마찬가지로 범용 리모컨을 만들 때 셋톱 박스 클래스를 만들 것입니다.

설정 상자.자바

이제 우리는 우리의 장치와 그 작업을 정의한 것을,우리는 클래스가 필요(명령)텔레비젼/설정 상자의 객체를 유지하고 이러한 작업을 호출 할 수 있습니다.

명령 클래스를 만들어 보겠습니다. 이 장치에서 두 가지 작업을 수행 할 때 명령 클래스는 아이디어 비스 유형의 객체를”가질”것입니다.
“켜짐”과”꺼짐”의 두 가지 명령이 필요합니다.
이러한 온/오프 명령 객체는 하나의 실행 함수/메소드를 가지며,이 메소드는 해당 장치에서 각각의 동작을 호출합니다.

당신이 발견 한 경우,나는 이름이”명령어”와”명령어”가 아닌 클래스를 만들었습니다. 아이디어는 다른 장치에 대한 명령 클래스를 다시 사용하는 것입니다. 즉,모든 장치를 지원하는 우리의 보편적 인 명령입니다.
이를 통해 범용 리모컨을 만들 수 있습니다. 빙고!!!!

지금까지 우리는”명령”의 형태로 장치 작업을 추상화했습니다. 우리에게 남아있는 유일한 것은 리모컨을 만드는 것입니다.제어,”명령”을 트리거합니다.

리모컨을 만들기 전에 버튼을 생성해야하며 각 버튼은 해당 명령을 실행합니다.

리모트 버튼 클래스에는 버튼을 누를 때 실행되는 명령 개체가 있습니다.

리모트 버튼.자바

마지막으로,각 작업에 대해 여러 개의 버튼이있는 원격 제어 장치를 만들어 보겠습니다.
생성자를 사용하여 원격 제어 장치를 만들 때 모든 개체를 인스턴스화하고 할당합니다.

원격 제어 장치.자바

위의 코드를 보면,우리는 우리의 리모컨에 여러 개의 버튼을 정의하고 우리는 보편적 인 리모컨을 만들기 위해 노력하고 있습니다.

우리는 모두 리모트컨트롤 장치를 만들고 플레이할 준비가 되어 있습니다.:)

산출:

TV is on!
TV is off!
SetTopBox is on!
SetTopBox is off!Process finished with exit code 0

출력에서 볼 수 있듯이 나는 장치에서 일련의 작업을 수행하기 위해,다른 버튼을 눌렀다.

그래서,간단히 말해서,아이디어는 클라이언트(프로비저닝/티비 사용자)에게 리모컨을 제공하는 대신 그들이 텔레비젼으로 모든 길을 걷게 하거나 텔레비젼을 켜거나 끄도록 텔레비젼을 제공하는 것입니다.
간단한 말로:

아이디어는 다른 객체(명령)에 작업을 캡슐화하고 재사용 한 다음 장치 작업이있는 이러한 명령 객체를 실행하기 위해 여러 버튼을 만드는 것입니다.

평소와 같이 모든 코드를 찾을 수 있습니다.

You might also like

답글 남기기

이메일 주소는 공개되지 않습니다.