2010-04-23 2 views
1

내 응용 프로그램에서 일부 XML 파일 (예 : "/xml/product/123.xml")을 생성합니다. 여기서 123은 제품의 ID이고 123.xml은이 제품에 대한 정보를 포함합니다.파일 경로를 관리하기위한 클래스를 설계하는 방법은 무엇입니까?

  1. 내가 직접 파일 경로를 만들 : 나는 또한 123.xml 클라이언트에 대한 정보를 포함 "/xml/customer/123.xml"... 나는이 파일 경로를 관리 할 수있는 방법 (123)

    이 직렬화 방법에서? 한 방법 CustomerSerializationPathManager 및 ProductSerializationPathManager :

  2. 는 I 2 개 정적 클래스를 생성 getPath (CUSTOMERID를 INT) 및 getPath (INT의 제품 ID)
  3. I 한 정적 클래스 만드는 2 가지 방법으로 SerializationPathManager을 : getCustomerPath은 (CUSTOMERID를 INT) 및 getProductPath (지능 제품 ID) 다른

  • 뭔가 내가이 클래스를 변경하는 단 하나의 이유가 생각하는 경우 때문에이 솔루션 셋을 선호하는 것 : 나는 루트 디렉토리를 변경합니다. 특정 폴더에있는 파일을 변경할 수 있습니다 이러한 파일의 위치를 ​​저장해야하는 경우, 당신은이 정보를 이동해야

  • +0

    파일을 생성 할 때 파일 경로를 관리해야하는 이유는 무엇입니까? 이유를 지정하면 더 나은 답변을 얻을 수 있습니다. –

    +0

    내 제품 및 고객에 대한 데이터를 xml 파일에 저장했기 때문에 ... 왜 그렇게합니까? 내 웹 디자이너는 정보를 표시하기 위해 xslt를 선호합니다. –

    +0

    특정 폴더 위치에이 데이터가 필요합니까? XML을 저장하는 위치를 관리하기 만하면됩니까? –

    답변

    1

    그래서 나는 그것에 대해 당신의 생각을 가지고 싶습니다

    ... 들으 구성 파일은 나중에 거기에서 사용할 수 있습니다.

    그런 다음 공장과 비슷한 클래스를 만들고 getPathForProductExports, getPathForCustomerExports 등으로 구성 파일을 읽어 원하는 경로를 반환합니다.

    customer_path=/xml/customer/ 
    product_path=/xml/product/ 
    

    XML을 생성 파일 이름에 적절한 경로 (getPathForCustomerExports, getPathForProductExports)를 앞에 추가 (이 고객, 제품 또는 어떤 수) :

    구성 파일은 간단한 .properties 파일이 될 수 있습니다.

    나중에 위치를 변경하면 구성 파일 만 편집하면됩니다.

    +0

    이 솔루션의 유일한 문제점은 내 저장 방법에 문자열 ".xml"이 표시되어 저장 방법이 여전히 직렬화에 대한 책임을지고 파일 경로를 만들지 만 '일부분 일지라도'입니다. 나는 틀릴지도 모른다. –

    +0

    틀린 것은 아닙니다. 내 대답은 클래스 사이의 적절한 분리를 보장하지 않기 때문에 불완전합니다. 해결 방법은 숫자 3을 사용하는 것입니다. 모든 데이터가 구성 파일에 변경 될 가능성이 있습니다 (코드를 건드리지 않고 위치를 변경할 수 있음). 그런 다음 SerializationPathManager가 매개 변수에 대한 모든 액세스를 캡슐화하고 ONLY 만 두 가지 메소드 노출 : getCustomerPath (customerID) 및 getProductPath (productID). ID가 들어가고 적절한 경로가 사라지고 아무도 SerializationPathManager를 제외한 파일 경로 나 확장명을 알지 못합니다. –

    +0

    시간 내 주셔서 감사합니다 :) –

    관련 문제