나는 현재 동일한 스키마를 가지고있는 sent
과 received
이라는 두 개의 테이블에 쓰는 메시지 시스템을 가지고있다.클래스 디자인 : 하위 클래스의 개체를 생성하기위한 개체를 만들기위한 것입니까?
Message
이라는 공통 클래스를 인스턴스화하기 전에 사용자 입력 데이터를 채우는 클래스를 작성하여 나머지 속성을 설정하고 각각을 데이터베이스에 작성했습니다. 유일하게 중요한 차이점은 하위 클래스에서 해당 변수로 표시되는 하나의 필드입니다. 다른 모든 속성은 Message
의 일부입니다.
사실, Message
은 생성 된 객체에 일반적인 메소드와 속성을 제공하고 데이터베이스 클래스에 대한 액세스를 용이하게하는 것 이외의 목적을 가지고 있지 않습니다.
이것은 나쁜 생각입니까? Message
클래스가 모 놀리 식입니까? 아니면 한 필드를 위해 하위 클래스를 추가해야합니까? 클래스를 완전히 분리하고 전송 용으로 하나를, 수신 테이블에 하나를 사용하는 것이 더 나은 접근 방법입니까?
내가 작성한 방식은 'Message' 클래스가 사용자에 의해 인스턴스화 된 것이므로 걱정거리입니다. 스키마와 관련된 차이점은'last_update' (datetime) vs'date_read' (datetime)이며, 클래스에서 사용하는 테이블 이름입니다. 메시지를 보내는 다른 모든 기능 (입력 유효성 검사, 입력 이스케이프, 테이블에 쓰기 등)은'Message'의 일부이거나'Message'의 일부로 호출됩니다. 유일한 차이점은받은 편지함 및 보낼 편지함을 표시하는 쿼리이며 심지어 거기서도 해결할 수 있다면 공통 클래스를 고려하고 있습니다. –
@MrXexxed : 클래스가 사용자에 의해 인스턴스화되는 경우 하위 클래스는 어떻게 작동합니까? –
클래스는 (예를 들어) send message 페이지에 의해 인스턴스화되고,'Message-> send_message'가 호출되어 In_Msg와 Out_Msg 인스턴스를 생성합니다. 그래서 나는 내가 필요로하는 것보다 스스로 힘들게 만들고 있는지 궁금해하고 있습니다. –