일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ethers
- ethers typescript
- Vue
- Vue.js
- 컨트렉트 배포 자동화
- multicall
- erc4337
- vue기초
- rust 기초
- 스마트컨트렉트테스트
- git rebase
- 오블완
- 러스트기초
- ethers type
- 스마트 컨트렉트 함수이름 중복
- 티스토리챌린지
- erc4337 contract
- 러스트 기초 학습
- ethers v6
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트 기초
- ambiguous function description
- 컨트렉트 동일한 함수이름 호출
- 체인의정석
- 머신러닝기초
- 계정추상화
- SBT표준
- 스마트컨트렉트 함수이름 중복 호출
- chainlink 설명
- ethers websocket
Archives
- Today
- Total
체인의정석
객체지향 프로그래밍 하기2 본문
728x90
반응형
다음과 같이 fromJson이라는 함수가 각 하위 클래스 객체에 모두 존재한다면 상위 클래스에서는 하위 클래스의 함수를 불러와서 사용하는 방식으로 코드를 작성해야 한다.
상위 클래스에서는 하위 클래스에 접근하거나 수정하는 행위 등을 하지 않아야 객체지향적 프로그래밍에 적합하다고 볼 수 있다.
하위 객체에서 각각 생성한 fromJson을 상위 객체에서 가져와서 사용한다.
또한 map을 사용하였는데 이렇게 map을 사용할 때는 return을 같이 넣어주어야 한다.
map은 배열에 있는 요소들에 특정 공식을 대입하여 각각의 요소들을 바꾸어 주는 역할을 한다.
froEach와 push를 합친 것으로 볼 수 있다.
위에서 let으로 변수를 선언해 놓고 아레에서 조건에 따라 map을 사용한 이유는 조건 문 안에 들어간 순간 스코프가 안에서만 적용되기 때문에 결과를 도출하여도 인식이 안되기 때문이다. 따라서 let을 사용하여 이러한 결과를 상위 스코프에서 저장 시킨 후 한번에 리턴하여 사용하였다. 여기서는 함수에서 바로 이러한 let 변수들을 사용하여 하나의 객체를 리턴하였기 때문에 이런식으로 사용하였지만 평소에는 사용에 주의를 기울여야 한다.
static fromJson(json) {
const name = json.name.map((n) => {
return NaturalPersonName.fromJson(n);
});
let geographicAddress;
let customerIdentification;
let nationalIdentification;
let dateAndPlaceOfBirth;
let countryOfRegistration;
if (json.geographicAddress) {
geographicAddress = json.geographicAddress.map((g) => {
return Address.fromJson(g);
});
}
if (json.customerIdentification) {
customerIdentification = json;
}
if (json.nationalIdentification) {
nationalIdentification = NationalIdentification.fromJson(json.nationalIdentification);
}
if (json.dateAndPlaceOfBirth) {
dateAndPlaceOfBirth = DateAndPlaceOfBirth.fromJson(json.dateAndPlaceOfBirth);
}
if (json.countryOfRegistration) {
countryOfRegistration = json;
}
return new NaturalPerson({
name,
geographicAddress,
customerIdentification,
nationalIdentification,
dateAndPlaceOfBirth,
countryOfRegistration,
});
}
728x90
반응형
'개발' 카테고리의 다른 글
Jest 에러 상황 테스트 하는 법 (0) | 2021.07.19 |
---|---|
Destructuring 구조분해 할당 (0) | 2021.07.16 |
자바스크립트 객체에서 key값과 value 값이 같은 경우 (0) | 2021.07.15 |
객체지향 프로그래밍 하기 - 모듈 구현 기준 (0) | 2021.07.15 |
javascript map 함수 (0) | 2021.07.15 |
Comments