〈클리오와 복제의 거울〉 클로니아라는 평화로운 마을에 사는
클리오는 그녀의 독특한 창작품으로 유명한 뛰어난 공예가였습니다
그녀는 복제의 거울이라는 마법 거울을 소유하고 있었습니다
그녀의 작품을 복제하고 싶을 때마다
거울 앞에 두어
반사된 모습이 실제 복제품으로 바뀌어 클리오가 원하는대로 바꿀 수 있었습니다
원본은 손을 대지 않았습니다. 어느 날 클리오는 파란 장미로 장식된 아름다운 화병을 만들었습니다
그러나 파란 것을 건들지 않은 상태로 붉은 버전을 만들고 싶었습니다
파란 장미 화병을 거울 앞에 놓으니 복제본이 나타났습니다
클리오는 복제된 화병의 장비를 붉은색으로 칠하고 원본의 파란 장미는 그대로 두었습니다
이제 코드를 예시로 설명하겠습니다
여기 Vase(화병)라는 데이터 클래스가 있으며 색상과 디자인이 있습니다
디자인은 마찬가지로 스트링이고
컬러 또한 스트링입니다
이제 파란 장미 화병을 만들겠습니다
이 화병 객체의 색상을 파랑이고 디자인은 장미입니다
이제 이 파란 화병을 변경하지 않고 복사하고 싶다면
Copy함수를 사용할 수 있습니다
이제 붉은 장미 화병을 만들 수 있습니다
단순히 blueRoseVase.copy를 입력하면 됩니다
이와 같은 방법으로 아이템을 복사하고
변경을 하고 싶다면 원하는 속성을 변경하고 싶은지 말하면 됩니다
예를 들어 색상을 붉은색으로 바꿀 수 있습니다
그러면 이 redRoseVase는 blueRoseVase와 동일하게 디자인은 장미이지만
색상이 파랑에서 붉은색으로 변했습니다
이제 출력을 하기 위해 print(blueRoseVase)와 println(redRoseVase)를 입력하면
println을 사용해야 합니다
차이가 보일 것입니다
이렇게 보일 것입니다
첫 번째 객체는 Vase이고 색상은 파랑 그리고 디자인은 장미입니다 두 번째는
붉은색이지만 디자인은 여전히 장미입니다
이 단순한 예시는 사실 수동으로 더 빨리
실행할 수 있으나
색상이나 디자인 등을 모른다면
통제할 수 없는 리스트 또는 데이터베이스에서 얻어야 한다면
이 복사 함수를 사용하는 것이 매우 매우 유용하고 중요합니다
나중에 프로젝트에서 사용할 것입니다