jQuery를 사용할 때 다음과 같은 메소드 체인을 보거나 사용하는 경우가 많습니다.
다음과 같이 코드 코드를 복사합니다.
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
이 코드의 의미는 선택기가 ID가 p1인 html 태그를 선택하면 색상이 빨간색으로 바뀌고 위로 슬라이드되고 다시 아래로 슬라이드된다는 것입니다.
당연히 이 메소드들을 따로 작성할 수도 있지만, 분리하지 않으면 가독성도 좋을 뿐만 아니라 코드의 양도 줄어들게 되니 왜 안 되겠습니까?
이렇게 함수를 호출하는 방식을 jQuery에서는 "체인화(Chaining)"라고 하며, 원리도 매우 간단합니다. 체인화할 수 있는 메서드는 호출된 후 개체 자체를 반환합니다.
다음은 Java 코드를 사용한 데모입니다.
연결하지 않고:
Persion.java:
다음과 같이 코드 코드를 복사합니다.
공개 클래스 Persion {
개인 정수 ID;
개인 문자열 이름;
개인 문자열 전화번호;
개인 문자열 주소;
공개 Persion() {
}
공개 무효 setId(int id) {
this.id = 아이디;
}
public void setName(문자열 이름) {
this.name = 이름;
}
공공 무효 setPhoneNumber(문자열 전화 번호) {
this.phoneNumber = 전화번호;
}
공개 무효 setAddress(문자열 주소) {
this.address = 주소;
}
공공 무효 printId() {
System.out.println(this.id);
}
공공 무효 printName() {
System.out.println(this.name);
}
공공 무효 printPhoneNumber() {
System.out.println(this.phoneNumber);
}
공공 무효 printAddress() {
System.out.println(this.address);
}
}
테스트.자바:
다음과 같이 코드 코드를 복사합니다.
공개 클래스 테스트 {
공개 정적 무효 메인(String[] args) {
Persion persion1 = new Persion();
person1.setId(3);
persion1.setName("John");
persion1.setPhoneNumber("1111111");
person1.setAddress("미국");
session1.printId();
session1.printName();
persion1.printPhoneNumber();
person1.printAddress();
}
}
체인 사용:
Persion.java:
다음과 같이 코드 코드를 복사합니다.
공개 클래스 Persion {
개인 정수 ID;
개인 문자열 이름;
개인 문자열 전화번호;
개인 문자열 주소;
공개 Persion() {
}
공개 Persion setId(int id) {
this.id = 아이디;
이거 돌려줘;
}
public Persion setName(문자열 이름) {
this.name = 이름;
이거 돌려줘;
}
공개 Persion setPhoneNumber(String PhoneNumber) {
this.phoneNumber = 전화번호;
이거 돌려줘;
}
공개 Persion setAddress(문자열 주소) {
this.address = 주소;
이거 돌려줘;
}
공개 Persion printId() {
System.out.println(this.id);
이거 돌려줘;
}
공개 Persion printName() {
System.out.println(this.name);
이거 돌려줘;
}
공개 Persion printPhoneNumber() {
System.out.println(this.phoneNumber);
이거 돌려줘;
}
공개 Persion printAddress() {
System.out.println(this.address);
이거 돌려줘;
}
}
테스트.자바:
다음과 같이 코드 코드를 복사합니다.
공개 클래스 테스트 {
공개 정적 무효 메인(String[] args) {
Persion persion1 = new Persion();
person1.setId(3).setName("John")
.setPhoneNumber("1111111").setAddress("미국");
session1.printId()
.인쇄이름()
.printPhoneNumber()
.printAddress();
}
}
기분이 묘해요~하하!