저는 현재 PHP와 OOP에 대해 전반적으로 더 잘 이해하기 위해 개인 프로젝트를 조금만 개발 중입니다. 기본적으로 게시물을 만들고 태그를 지정할 수있는 작은 앱을 만들고 있습니다.잘못된 인수로 객체를 인스턴스화하는 것을 피하십시오.
클래스는 지금까지 다음과 같이 구성되어 있습니다
포스트
데이터베이스에 게시물을 나타냅니다, 그리고 등editPost()
,attachTag()
,태그와 같은 기능을 가지고있다
데이터베이스의 태그를 나타내고 유사하게는editTag()
, e 이 관리 인터페이스처럼, 새 게시물과 태그를 생성/삭제하는 데 사용됩니다있다 TC.PostUtils
목록 그들, 이제 등
, 나는 인스턴스를 새 게시물 개체는 게시 ID를 필요한 인수로 전달하여 처리합니다. 그렇게 할 때 ID가 유효한지 먼저 확인할 수 있기를 원합니다. 지금까지 PostUtils 클래스 (isValidID($id)
)의 메서드를 사용하여이 작업을 수행 했으므로 컨트롤러는 Post 클래스가 인스턴스화되기 전에 검사를 수행 할 수 있습니다. 그러나, 나는 Tell, Don't Ask 원리에 대해 읽었으며, 나는 Post 클래스 자체 내에서이 검사를 수행해야만한다.
이상적으로는 유효한 ID가 전달 될 때만 개체를 인스턴스화하는 것이 좋습니다. 그래서 내 질문에, 유효하지 않은 ID가 대신 전달 될 때 클래스에 가장 적합한 동작은 무엇입니까? 이것은 전혀 이해가 되니? 또는 내 전체 아키텍처를 시작하여 변경해야합니까?
이 당신의 시간을 주셔서 감사합니다, 그것은 정말 :)
필요한 데이터가 없거나 유효하지 않은 경우 개체를 만들지 않으려면 정적 팩터 리 메서드를 만들어야합니다 'Post' 클래스에서. ['DateTime :: createFromFormat'] (http://us.php.net/manual/en/datetime.createfromformat.php)이 어떻게 작동하는지와 비슷합니다. –
정확하게 이해한다면 공장 방법 설계 패턴을 조사해야합니다. 의견을 보내 주셔서 감사합니다! – finferflu