모든 오브젝트에 대해서 캐시하는 스토리지를 만들어 생성에 사용된 테이블을 캐싱하도록 합니다 그렇게 해서
store.getSource(object);
를 이용해 소스 테이블을 얻어올 수 있도록 만듭니다
rblx 의 인스턴스의 경우 테이블의 index 로 사용될 수 있기에 그냥 인덱스로 바로 넘기고 oop 로 생성된 가짜-테이블 기반 오브젝트는 tostring을 이용해 아이디로 변환한 후 인덱스에 사용합니다 (투 스트링 말고 더 좋은 방법으로 아이디를 얻을 수 있다면 그 방법을 사용합니다)
이렇게 하여 모든 오브젝트의 소스를 얻을 수 있는 환경이 구성되면, 자식 개체와 자신을 완전히, 바인딩까지 카피하는 완전복사를 위한 카피 라이브러리를 만듭니다, 이 라이브러리를 이용하면 이 모듈을 이용해 생성된 모든 오브젝트에 대해서 바인딩과 스타일 등을 생성한 그대로 다시 만들 수 있게 됩니다, 즉 사실상 모든 오브젝트가 재사용 가능하게 만들어 지는것이죠,
또한 어떤 오브젝트에 대해서 일시적인 삭제가 필요하면 해당 옵젝의 원본 소스를 복사해뒀다가 (얕은 참조) 나중에 다시 불러와 똑같은 오브젝트를 만들 수도 있습니다
다음과 같은 구현이 될것입니다
local clone = fullCopy(object);
또한 오브젝트를 export 할 때 그 익스포트 하는 오브젝트는 이미 생성된 오브젝트를 이용할 수도 있어야 힙니다
즉 풀 카피를 이용해서 오브젝트를 클래스피화 할 수 있어야합니다
이 기능을 이용하면 오브젝트는 완전히 재사용이 가능하겠죠
어쨋든 , 이 라이브러리는 오브젝트의 제사용성과 오브젝트 관리의 편의성을 1순위로 다루고 있는 라이브러리기 때문에 캐싱에 대해서 걱정할 필요는 없지만 그래도 누수와 관련된 문제를 해결해주기 위해서
store.flushCache();
를 만들어줘 캐싱 태이블을 비울 수 있게 만들어야 합니다
또한 아이디 스페이스 (사용자 지정 쿼리 가능 오브젝트 저장소)
에 대해서 관련 문제도 해결해야 합니다
이것 또한 플러시 할 수 있도록 store 에 함수를 추가해야합니다
모든 오브젝트에 대해서 캐시하는 스토리지를 만들어 생성에 사용된 테이블을 캐싱하도록 합니다 그렇게 해서
를 이용해 소스 테이블을 얻어올 수 있도록 만듭니다 rblx 의 인스턴스의 경우 테이블의 index 로 사용될 수 있기에 그냥 인덱스로 바로 넘기고 oop 로 생성된 가짜-테이블 기반 오브젝트는 tostring을 이용해 아이디로 변환한 후 인덱스에 사용합니다 (투 스트링 말고 더 좋은 방법으로 아이디를 얻을 수 있다면 그 방법을 사용합니다) 이렇게 하여 모든 오브젝트의 소스를 얻을 수 있는 환경이 구성되면, 자식 개체와 자신을 완전히, 바인딩까지 카피하는 완전복사를 위한 카피 라이브러리를 만듭니다, 이 라이브러리를 이용하면 이 모듈을 이용해 생성된 모든 오브젝트에 대해서 바인딩과 스타일 등을 생성한 그대로 다시 만들 수 있게 됩니다, 즉 사실상 모든 오브젝트가 재사용 가능하게 만들어 지는것이죠, 또한 어떤 오브젝트에 대해서 일시적인 삭제가 필요하면 해당 옵젝의 원본 소스를 복사해뒀다가 (얕은 참조) 나중에 다시 불러와 똑같은 오브젝트를 만들 수도 있습니다 다음과 같은 구현이 될것입니다
또한 오브젝트를 export 할 때 그 익스포트 하는 오브젝트는 이미 생성된 오브젝트를 이용할 수도 있어야 힙니다 즉 풀 카피를 이용해서 오브젝트를 클래스피화 할 수 있어야합니다 이 기능을 이용하면 오브젝트는 완전히 재사용이 가능하겠죠
어쨋든 , 이 라이브러리는 오브젝트의 제사용성과 오브젝트 관리의 편의성을 1순위로 다루고 있는 라이브러리기 때문에 캐싱에 대해서 걱정할 필요는 없지만 그래도 누수와 관련된 문제를 해결해주기 위해서
를 만들어줘 캐싱 태이블을 비울 수 있게 만들어야 합니다
또한 아이디 스페이스 (사용자 지정 쿼리 가능 오브젝트 저장소) 에 대해서 관련 문제도 해결해야 합니다 이것 또한 플러시 할 수 있도록 store 에 함수를 추가해야합니다