2010-04-03 3 views
5

추가 작업을 위해 필요한 모든 멤버 변수를 지우거나 기본값으로 설정하거나 단순히 생성하는 특정 개체에 대해 '재설정'기능을 만드는 것이 더 효율적이라고 생각합니까? 밖에서 온 새 물건?개체 재설정과 새 개체 만들기

두 방법 모두 많이 사용되는 것을 보았지만 어떤 것이 더 나은지는 결정할 수 없습니다. 물론 데이터베이스 연결을 나타내는 클래스의 경우 연결/연결이 불필요한 새 클래스를 작성하는 대신 재설정 메소드를 사용해야하지만 추상 클래스에 관해서는 더 자세히 설명합니다.

누구나 각 방법을 사용할 때의 실례를 나에게 줄 수 있습니까? 내 경우에는 ORM이나 MVC의 모델 측면에서 주로 생각하고 있습니다. 예를 들어, 한 번에 여러 개의 데이터베이스 개체를 검색하여 수정하려고합니다.

답변

3

개체를 다시 사용할 때 Object Pool 패턴을 사용하고 있습니다.

고려해야 할 주요 쟁점 중 하나는 이러한 개체의 상태 및 다음 사용자가 해당 상태를 얼마만큼 다시 설정해야하는지입니다. 데이터베이스 연결을 사용하면 다시 연결하지 않아도됩니다. 그렇지 않으면 새 연결을 만들 수 있습니다. 아이디어는 객체를 연결 한 상태로두고 결과를 지우는 것입니다. 오브젝트 풀을 사용하지

이유 : 풀 필요하지 않을 때 인스턴스화 이러한 개체를 갖는

  • 메모리 비용의

    • 복잡성. 이렇게하면 가비지 수집 속도가 느려질 수도 있습니다. 그것은 객체에게의

    더 자세한 사항을 만들거나 파괴하는 데 시간이 너무 오래 걸리는

    • : 정확히 수립
    • 는 어떤 상태 오브젝트 풀을 사용하는

    이유를 재설정 할 필요가 종이 by Kircher and Jain.

  • 0

    성능상의 이유로 리셋이 이루어집니다. 기본 접근 방식은 필요할 때 새로운 객체를 생성하고 기존 객체를 재활용하지 않는 것입니다. PHP를 작성하는 것보다 느린 것에 대해 걱정하지 않는다면. PHP가 느려지는 것에 대해 걱정한다면 훨씬 더 느리게 의존하는 다른 것들을 멈추고 걱정해야합니다.