2008-11-12 4 views
3

.NET에서 memento의 두 가지 구현을 보았습니다..NET에서의 메멘토 구현

하나는 꽤 간단합니다 - 개체 자체의 다른 인스턴스를 만듭니다.

다른 하나는 BinaryFormatter 및 MemoryStream을 사용하여 개체를 serialize하는 것입니다.

선호되는 방법은 무엇입니까? 누구나 각 접근법의 장점/단점을 지적 할 수 있습니까?


그런데 저는 리소스 사용/개발자 생산성 측면에서 살펴보고자합니다. 먼저 그 사실을 밝히지 않은 것에 대해 사과드립니다.

기념일을 유지할 필요가 없다고 가정하면 어떤 것이 좋습니다?

개발자 생산성 측면에서 볼 때 직렬화가 손을 통과합니다. 모든 객체에 대해 일반적인 몇 줄은 개인 생성자, 필드 할당 등을 포함하는 복제본을 수동으로 만들어야하는 것보다 효율적입니다.

하지만 다시 직렬화가 무거워요. 확실하지 않습니다.

답변

0

당신이 유품을 유지하려는 경우는,

그렇지 않으면 직렬화 방법을 사용, 복제 된 객체는 내가/저장을 만드는 방법의 선택은 추억의 물건이 시간에 달려 있다고 생각

2

좋은 당신 유품을 계속 유지하고 appdomains에서 그 유품을 전달해야하는지 여부 유품이 짧은 시간 동안 만 존재하고 동일한 스레드에서만 사용되는 경우 복제 된 개체가 적합합니다. 유품을 유지해야하거나 다른 appdomain으로 전달해야하는 경우 직렬화가 선호됩니다. 유품이 오래 살아 있다면, 그것을 직렬화하고 파일이나 DB에 외부에 저장할 수도 있습니다.

0

나를 열광적이고 비효율적이라고 불러주세요.하지만 StringBuilder와 문자열에서 광산을 사용합니다.

0

종종 BinaryFormatter 및 MemoryStream은 많은 양의 코드를 작성할 필요없이 작동하지만 Clone()은 각 클래스에 코드를 추가해야합니다.

그렇지 않으면 기념일을 유지할 필요가없는 두 가지 방법 중 하나를 선택하는 것이 맞지 않습니다.