문제

이 질문을 하는 가장 쉬운 방법은 제가 직면하고 있는 실제 실제 상황을 이용하는 것이라고 생각합니다.

우리 시스템에는 행을 나타내는 사이트 모델(여기서는 클래식 MVC 프레임워크)이 있습니다. 대지 테이블.분야 중 하나 대지 사이트 모델에 저장된 테이블은 사이트의 시간대입니다.우리는 이를 사용하여 데이터베이스의 UTC 날짜 시간을 표시된 사이트 시간대로 조정합니다.이를 지원하는 몇 가지 도우미 메서드가 있습니다.utcDatetimeToSiteTimestamp(), utcTimeStampToSiteDatetime() 등

이러한 도우미 메서드는 사이트 모델에 포함된 사이트의 시간대를 사용하므로 이러한 메서드를 모델에 포함해도 괜찮을까요?아니면 별도의 도우미 클래스에 배치해야 합니까?

모델이 데이터베이스의 데이터 행을 보유하는 것 이상의 작업을 수행해야 한다는 것을 알고 있지만 이 데이터에 대해 작동하는 도우미 메서드와 보조 메서드 사이의 경계는 어디에 있습니까?이 데이터를 사용하여 외부 입력에 대해 작업을 수행하는 도우미 메서드가 있습니까?

통찰력을 가져 주셔서 감사합니다!

도움이 되었습니까?

해결책

이것은 일부 판단의 문제입니다. 도우미 방법이 일반적이며 다른 클래스에서 유용 할 수 있다면 코드를 재사용 할 수있게되므로 도우미 클래스를 만듭니다. 도우미 방법이 문제의 수업에 매우 구체적이라면 바로 그대로 두십시오.

다른 팁

답은 책임 영역에 있습니다. 모델 클래스는 물건을 추가하고, 물건을 수정하고, 물건을 제거하고, 언제, 어떻게 내부 상태를 변경하는지 알고있는 방법을 알고 있습니다.
전환에 대해 아무것도 없습니다. 변환기는 클래스 외부에 속합니다. 따라서 객체 또는 모델이 클라이언트에 어떻게 표현되는지에 대한 책임이있는 것을 형식화하십시오.

이 방법은 실제로 하나의 모델에 속하지 않기 때문에 도우미 클래스를 만들 것입니다. 그것들은 정적 방법 일 것입니다. 제 생각에는 별개의 도우미 클래스의 프로입니다.

나는 그것이 판단의 문제라는 점에서 Vincent Ramdhanie의 의견에 동의합니다.개인적으로 나는 내 모델 클래스 내에서 도우미 함수를 정의하는 것을 좋아하지 않습니다. 너무 지저분하고 단순히 거기에 속하지 않는다고 생각합니다(게다가 거의 어떤 도우미 함수도 한 번만 사용되지 않는다는 것을 종종 발견합니다).하지만 그렇다고 내가 그렇지 않다는 말은 아니다. 사용 내 모델 내에서 도우미 기능을 수행합니다.예를 들어 BlogPost 모델 클래스가 있는 경우 getOneCompiled() 메서드는 도우미 함수를 사용하여 테이블 행을 나타내는 배열을 반환하기 전에 일부 링크를 조합합니다.

옵션을 살펴보고 어떤 코드가 코드를 쉽게 읽고 유지 관리할 수 있는지 확인하는 것이 중요합니다.자체 파일에 도우미 함수를 작성하려면 사전 작업이 더 필요할 수 있지만 코드를 더 쉽게 관리할 수 있다면 확실히 그만한 가치가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top