매크로를 사용해 본 친구들은 매크로를 사용하면 여러 기술을 하나의 키에 묶을 수 있다는 것을 알아야 합니다. 예를 들어 1위 스킬에 CD가 있다면 해당 스킬은 건너뛰고 다음 스킬을 실행하게 됩니다. 제가 DK를 할 때 몬스터와 싸울 때 버튼 하나만 누르고 계속 누르고 있던 기억이 납니다. 서블릿의 doGet 및 doPost 메소드에서는 일반적으로 처리를 위해 doGet 요청을 doPost로 보냅니다. 이는 또한 책임 체인 모델이기도 합니다.
여기에 '빙혈냉기파'와 '얼음화살' 두 스킬을 묶는 매크로가 있습니다.
패키지 책임;/** * DOC 기술 인터페이스, 바인딩할 기술은 이 인터페이스를 구현해야 합니다.* */public 인터페이스 ISkill { public void CastSkill();}패키지 책임;import java.util.ArrayList;import java.util List; /** * 원클릭 캐스팅을 달성하기 위해 여러 스킬을 함께 묶는 데 사용되는 DOC 매크로 클래스* */public class Macro { /** * 함께 묶인 여러 스킬의 DOC 컬렉션*/ public List<ISkill > Skill = new ArrayList<ISkill>(); /** * * DOC는 바인딩 순서에 따라 스킬을 시전합니다. */ public void castSkill() { for (int i = 0; i < Skill.size(); i++) { Skill.get( i).castSkill(); } } /** * DOC 바인딩 기술 * * @param Skill */ public voidbindSkill(ISkill Skill) { Skill.add(skill) }}패키지 책임;/** * DOC Ice Arrow 스킬, 냉각 시간 없음* */public class IceArrow는 ISkill을 구현합니다. { @Override public void castSkill() { System.out.println("Cast--"Ice Arrow"); }}패키지 책임;/* * * DOC Ice-Blooded Cold Pulse 스킬, 냉각 시간 2분*/public class IceBloodFast Implements ISkill { @Override public voidcastSkill() { // 이는 스킬이 냉각 중인지 확인하는 데 사용할 수 있습니다. System.out.println("Cast--"Ice-Blooded Cold Pulse")는 여기서 생략됩니다. }}
테스트 클래스:
패키지 책임; public class Main { public static void main(String[] args) { Macro 매크로 = new Macro(); Macro.bindSkill(new IceBloodFast()); ) }}
테스트 결과:
지금 시전 중--"냉혈 냉파 시전--"얼음 화살
요약: 책임 체인 모델은 요청에 처리할 개체가 여러 개 있을 수 있는 경우 주로 사용됩니다.