Unit1.pas
(예) 어디 TIdTCPServer
및 TIdUDPServer
구성 요소가있는 TService
있습니다.하지만 이벤트 메서드를 UDP.pas
및 TCP.pas
같은 다른 파일에서 구현할 싶습니다. 그들이 TService의 일부라면 가능합니까? 방법?둘 이상의 소스 파일에 객체를 구현할 수 있습니까?
1
A
답변
3
클래스를 여러 단위로 구현할 수 없습니다. 그러나 이벤트 핸들러는 어디에서나 구현할 수 있습니다.
+0
맞아요. 전에이 접근법을 사용했는데이 프로젝트에서이 가능성을 완전히 무시했습니다. - – PSyLoCKe
3
유닛에 구현할 수 없습니다. 컴파일 된 유닛 (.dcu)은 인터페이스에 선언 된 모든 메소드의 구현을 포함해야하기 때문에 두려워합니다.
그러나 구현의 일부를 별도의 파일로 작성한 다음 ({$I
지시문 사용) 기본 장치에 포함시킬 수 있습니다.
예. 당신의로, Unit1.pas의 구현 섹션에서 라인
{$I TCP.pas}
{$I UDP.pas}
을 추가 한 다음 당신은 (물론 어떤
unit
또는
interface
또는
implementation
키워드없이) TCP.pas 및 UDP.pas에서 몇 가지 방법을 구현하는 것처럼 당신 Unit1.pas의
implementation
부분에 쓰고있었습니다. 물론 모든 메소드 ('local'및 'included'모두)는 Unit1.pas의 인터페이스 섹션에서 선언해야합니다.
일반적으로 포함 할 파일의 확장자는 .inc
입니다.
아마도 논리적으로 독립적 인 블록을 하나의 클래스에 포함시키지 않도록 디자인을 검토 할 수 있습니다. 서비스 로직을 TCP 및 UDP 로직 (다른 클래스와 다른 유닛)과 분리하면보다 세련된 디자인으로 이어질 수 있습니다.
관련 문제
- 1. json 파일에 둘 이상의 객체를 포함 할 수 있습니까?
- 2. 동일한 NSString에 둘 이상의 NSCharacterSet 객체를 사용할 수 있습니까?
- 3. OpenGL ES 2.0을 사용하여 둘 이상의 객체를 그릴 수 있습니까?
- 4. 단일 Jsch 객체를 사용하여 둘 이상의 채널을 열 수 있습니까?
- 5. @interface에 둘 이상의 클래스가있을 수 있습니까?
- 6. ELF 파일에 둘 이상의 기호 테이블이 포함될 수 있습니까?
- 7. MP4 파일에 둘 이상의 영화 아톰이 포함될 수 있습니까?
- 8. 은 xxx.dbml 파일에 둘 이상의 테이블을 포함 할 수 있습니까?
- 9. 자바가 JFrame에 둘 이상의 JPanel 객체를 추가합니다.
- 10. 클래스에 둘 이상의 Java 객체를 가져 오시겠습니까?
- 11. AutoMake - 둘 이상의 바이너리에서 사용되는 소스 파일
- 12. 스레드가 둘 이상의 인수를 가질 수 있습니까?
- 13. 양식에 둘 이상의 작업이있을 수 있습니까?
- 14. UIViewController에 둘 이상의 UIView가 포함될 수 있습니까?
- 15. 둘 이상의 AWT 이벤트 큐가있을 수 있습니까?
- 16. Android 앱에 둘 이상의 서비스가있을 수 있습니까?
- 17. heroku가 둘 이상의 언어를 지원할 수 있습니까?
- 18. Jenkins가 둘 이상의 이메일을 보낼 수 있습니까?
- 19. 엔티티가 둘 이상의 엔티티와 연결될 수 있습니까?
- 20. fetchedResultsController에서 둘 이상의 sectionNameKeyPath를 사용할 수 있습니까?
- 21. 하나의 JPG 파일에 둘 이상의 이미지 내보내기
- 22. 시스템에 둘 이상의 java VM을 둘 수 있습니까?
- 23. 둘 이상의 파일에 클래스가있는 GAE Webapp2 사용
- 24. 왜 클래스의 멤버 함수를 헤더 파일에 구현할 수 있습니까?
- 25. Windows에서 exexcuted 할 .jar 파일에 둘 이상의 기본 방법이 있습니까?
- 26. 동일한 어셈블리 내에 둘 이상의 XmlnsPrefix를 포함 할 수 있습니까?
- 27. 다른 사람들이 src 내에`가짜`Java 객체를 구현할 수 있습니까?
- 28. 둘 이상의 SenTestCase 연결
- 29. 우리는 어떻게 안드로이드에 둘 이상의 활동을 넣을 수 있습니까?
- 30. CI 둘 이상의 저장소로 빌드
다른 단위로 분산 된 메서드를 가독성에 심각한 타격을 가하지 않을까요? – alcalde