8.2 replace datavalue with object(데이터 값 대신 대상)
데이터 항목을 대상으로 변경합니다.
동기:
개발 초기에는 흔히 간단한 데이터 항목으로 간단한 상황을 표시하기로 결정했다.그러나 개발이 진행됨에 따라 이런 간단한 데이터 항목은 더 이상 간단하지 않다는 것을 발견할 수 있을 것이다.
방법:
대체 수치를 위한 클래스를 새로 만듭니다.final 필드를 설명합니다. 원본 클래스의 대체 수치 형식과 같습니다.그리고 새 클래스에 이 필드의 값 함수를 추가하고 이 필드를 매개 변수로 받아들이는 구조 함수를 추가합니다.
원본 클래스의 바꿀 수치 필드의 형식을 앞에 새로 만든 클래스로 변경합니다.
소스 클래스에서 이 필드의 값 함수를 수정하여 새 클래스의 값 함수를 호출합니다.
만약 원본 구조 함수에서 이 대체 필드를 사용한다면, 우리는 구조 함수를 수정하여, 새로운 종류의 구조 함수로 필드에 값을 부여하는 동작을 하도록 할 것이다.
원본 클래스에서 바꿀 필드의 값 함수를 수정하여 새 클래스에 실례를 만듭니다.
현재, 새로운 종류에change value to reference를 사용해야 할 수도 있습니다.
이전 코드
class Order...
public Order(String customer){
_customer = customer;
}
public String getCustomer(){
return _customer;
}
public void setCustomer(String arg){
_customer = arg;
}
private String _customer;
private static int numberOfOrdersFor(Collection orders, String customer){
int result = 0;
Iterator iter = orders.iterator();
while(iter.hashNext()){
Order each = (Order) iter.next();
if(each.getCustomer().equals(customer)) result++;
}
return result;
}
새 코드
class Customer{
public Customer(String name){
_name = name;
}
public String getName(){
return _name;
}
private final String _name;
}
class Order...
public Order(String customerName){
_customer = new Customer(customerName);
}
public string getCustomerName(){
return _customer.getName();
}
private Customer _customer;
public void setCustomer(String customerName){
_customer = new Customer(customerName);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.