저는, 물건을 종류별로 분류해두는걸 좋아합니다.
프로그래밍도 마찬가지입니다.
비슷한 용도의 클래스를 하나의 패키지로 묶기를 원하죠.
그런데 Java에서 디테일하게 Modifier Access를 컨트롤할수없는 듯한 느낌이 듭니다.
패키지 구성은 다음과 같습니다.
제 의도
1. FdbmsTestUtil클래스를, testcode 패키지 하위에서만 사용했으면 좋겠습니다.
(1) testcode패키지 안에있는 클래스들,
(2) fdbms.testcode패키지 안에있는 패키지인 example패키지,
(3) (이하동일) exception패키지,
(4) performance패키지
딱 여기서만 사용하고싶습니다.
방법1. FdbmsTestUtil를 public으로 사용 (현 방법)
장점 : testcode 하위 모든 패키지들(example~ performance)에서 사용가능
단점 : 저 fdbms프로젝트를 jar로 만들어서 이용하는 사용자클래스에서 접근가능. (public이니까요)
방법2.
example패키지, performance패키지, exception패키지를 없애고
그 안에 있는 모든 클래스를 모두 testcode패키지에 넣은 다음,
FdbmsTestUtil클래스를 default로 선언합니다.
장점 : 제 의도를 완벽하게 구현할 수 있습니다. 사용자클래스에서 FdbmsTestUtil를 접근할수없습니다.
단점 : 하나의 패키지안에 굉장히많은 클래스들이 들어갑니다.
간략한 설명)
fdbms = jdbc드라이버 (제가만듬)
fdbms.testcode = 테스트코드 모여있는 패키지
fdbms.testcode.example = jdbc드라이버 사용법
fdbms.testcode.exception = 특정 상황에서 예외를 제대로 발생하는지 테스트하는 코드
fdbms.testcode.performance = 제가만든 jdbc드라이버의 성능을 테스트하는 코드
이렇게 다 용도가 다른대,
하나의 testcode패키지 아래에 다 떄려박으면 좀 그렇지...않나요?
심지어.. fdbms.testcode.example 아래에 또 다른 패키지들이 또 있단말이에요...
이걸 다때려박으면...음...,,,
좋은방법이 없을까요?
default modifier access가...
딱 해당 패키지에 있는 클래스에서만 접근가능한 속성인게 불편해요.
해당패키지와 해당패키지의 하위패키지 에서도 접근이 가능했으면 얼마나좋을까요...