응용 프로그램의 엔터티에 대한 인터페이스를 만드는 것이 정상입니까/권장입니까? getter/setters가 인터페이스 또는 비즈니스 메소드에서만 선언되어야합니까?엔티티 용 인터페이스를 만들어야합니까?
답변
인터페이스는 비즈니스 로직 용이며, 모듈의 동작 또는 기능을 선언합니다. POJO는 데이터를 포함하고 논리를 수행하지 않는 객체입니다.
같은 의미로 인터페이스를 만들 수 있습니다. 동일한 기능을 공유하는 여러 클래스가 있을까요? 즉, 동일한 인터페이스를 제공합니까? 이 경우 그 안에 (비즈니스 로직) 메소드로 인터페이스를 생성 할 수 있습니다.
또한 인터페이스에는 상태를 추적하는 변수가 없으며 인터페이스를 구현하는 클래스의 일부가됩니다. 인터페이스가 같은 여러 클래스는 다른 방식으로 구현할 수 있으므로 인터페이스에 변수 (getter 및 setters)를 지정할 필요가 없습니다.
인터페이스에는 반드시 getter 및 setter가 없어야합니다. 인터페이스는 클래스가 수행 할 수있는 기능 만 제공합니다 (getters/setter가 필요한 경우 - 추상 클래스 사용). 필드는 일반적으로 (항상은 아니지만) 구현의 일부일뿐입니다. 당신의 클래스는 데이터를 포함하는 경우
따라서, 엔티티에 대한 인터페이스를 사용하는 것은 그들이 JPA 다루고 있다는 사실에서 클라이언트를 분리 할 수 있습니다 주장 할 수 인터페이스
하나의 필요가 없습니다. 때로는 동일한 인터페이스를 공유하는 지속 된 엔티티 옆에 여러 파생 된 비 영구적 인 비즈니스 객체가 필요하다는 상황이 있습니다. 그러한 경우 나는 이것을 적절하게 생각한다. 그러나 거래를 염두에 두지 않을 경우에만 읽기 전용으로 사용을 제한해야합니다.
인터페이스/구현 패턴의 "남용"에 대해 논의하는 훌륭한 기사를 살펴보십시오. 일반적으로 엔티티 빈 패턴의 종류를 다음되지 않으며 여기에 좋은 이유를 찾을 수 :
http://marekdec.wordpress.com/2011/12/06/explicit-interface-per-class-antipattern/
법인 또는 POJO는 게터와 속성을 가지고 있기 때문에 나는, 인터페이스는 어떤 의미가 같은 개체/POJO를 생각 해달라고 좋고 setters 그리고 데이터 용으로 사용됩니다. (인터페이스를 구현하는 POJO에서) 인터페이스와 구현을 제공하고 Implementation 클래스에 대한 인터페이스 참조를 사용하여이를 데이터베이스에 유지하고 있다고 가정합니다. 그것은 지속될 것이지만, 동일한 인터페이스를 구현하는 다른 pojo를 제공한다면 어떨까요? 그것은 분명히 pojo의 의미를 위반할 것이고, 당연히 어떤 pojo가 지속되는지 혼란스럽게 할 것입니다.
- 1. 엔티티 개체는 어디에 만들어야합니까?
- 2. 각 모델에 대한 인터페이스를 만들어야합니까?
- 3. UITextField 용 컨트롤러를 만들어야합니까?
- 4. (현재) 인터페이스를 구현하는 클래스가 하나만있을 때 인터페이스를 만들어야합니까?
- 5. MVC 3 인터페이스를 전달하는 엔티티
- 6. XPCOM에서 사용하는 모든 자체 생성 클래스에 대한 인터페이스를 만들어야합니까?
- 7. 활동에서 위젯 용 스탄 쎄 필드를 만들어야합니까?
- 8. TestFlight 용 AdHoc 배포 빌드를 실제로 만들어야합니까?
- 9. iPhone과 iPad 용 응용 프로그램을 별도로 만들어야합니까?
- 10. MAC OSx 용 새로운 php.ini는 어떻게 만들어야합니까?
- 11. 유형 코드 용 인터페이스를 사용해야합니까?
- 12. DASH 용 HTML 엔티티
- 13. 어떻게 플러그인을 Firefox에 만들어야합니까?
- 14. 왜 데이터베이스 래퍼를 만들어야합니까?
- 15. NHibernate 용 PLINQO. 매핑과 엔티티.
- 16. JPA 엔티티 용 DTO 생성기
- 17. Java 용 엔티티 인식 라이브러리
- 18. IOC 컨테이너를 통해 무엇을 만들어야합니까?
- 19. SWIG 용 인터페이스를 설계하는 방법은 무엇입니까?
- 20. Javascript 용 동기 인터페이스를 사용한 비동기 작업
- 21. Remoting에서 CAO 용 인터페이스를 사용할 수 있습니까?
- 22. DNS 용 네트워크 인터페이스를 지정하는 c-areres가
- 23. R에 Eureqa 용 인터페이스를 구현하는 사람이 있습니까?
- 24. 객체를 수동으로 만들거나 InterfaceBuilder로 만들어야합니까?
- 25. API gem을위한 오이 기능을 만들어야합니까
- 26. 사용자 정의보기 용 인터페이스 빌더 플러그인을 언제 만들어야합니까?
- 27. 어디에서 MVC 아키텍처 용 사용자 프로필 페이지의 단축 URL을 만들어야합니까?
- 28. Perl 명령 줄 프로그램 용 Java GUI를 만들어야합니까?
- 29. 모바일 6 또는 모바일 5 용 모바일 응용 프로그램을 만들어야합니까?
- 30. Ipad에서 MPMoviePlayer 샘플 코드 (iphone 용)에서 어떤 차이를 만들어야합니까?
OO-Paradigma는 우리가 데이터를 넣어야하고 그것의 기능을 하나의 클래스에 넣어야한다고 말합니다. 이것을 분할하는 것은 기술적 인 이유로 유용 할 수 있지만 OO를 위반하는 것입니다. – BetaRide
우리가 PlainOldJavaObject에서 이야기 할 때 우리는 로직 전용 getter와 setter가없는 데이터 (속성) 만 포함하는 객체에 대해 이야기합니다. 당신은 기능이있는 객체 (데이터를 포함하고있을 가능성이 있습니다)에 대해 옳았습니다. 분할해서는 안됩니다. – shem
> OO-Paradigma는 우리가 데이터를 넣어야하고 그것의 기능을 한 클래스에 넣어야한다고 말합니다. - 케이크가 굽는거야? 'cake.bake()'는 어떤 의미가 있습니까 ??? –