2010-04-23 67 views
1

在我的应用程序中,我为实例生成了一些xml文件:“/xml/product/123.xml”,其中123是产品的ID,123.xml包含有关此产品的信息。我也有“/xml/customer/123.xml”里123.xml包含了客户端的信息... 123如何设计一个用于管理文件路径的类?

如何管理这些文件路径:

  1. 我直接创建的文件路径在序列化方法中?
  2. 创建2静态类:CustomerSerializationPathManager和ProductSerializationPathManager用1种方法:的getPath(INT的customerID)和的getPath(INT的productID)
  3. 创建一个静态类:SerializationPathManager用2种方法:getCustomerPath(INT的customerID)和getProductPath(INT的productID)
  4. 别的东西

我宁愿解决方案3,因为如果我觉得只有一个理由改变这个类:我改变了根目录。

所以我想有一些关于它的想法... THX

+0

为什么在生成文件时需要管理文件路径?如果您指定原因,您会得到更好的答案。 – 2010-04-23 08:10:23

+0

,因为我将有关我的产品和我的客户的数据保存在xml文件中...为什么要这样做?因为我的网页设计师更喜欢xslt来显示信息。 – 2010-04-23 08:12:34

+0

所以你需要这个数据在特定的文件夹位置?您只想管理保存XML的位置? – 2010-04-23 08:16:05

回答

1

如果您需要保存在特定的文件夹中的文件和这些文件可以改变的位置,那么你应该在移动信息配置文件,并在稍后使用。

然后,您创建一个类似于工厂的类,其中getPathForProductExports,getPathForCustomerExports等读取配置文件以返回所需的路径。

配置文件可以是一个简单的属性文件:

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

在生成XML(无论是客户,产品或其他),你在前面加上相应的路径(getPathForCustomerExportsgetPathForProductExports)的文件名。

如果您稍后更改位置,您只需编辑配置文件。

+0

这个解决方案我唯一的问题是我会在我的保存方法中看到一个字符串“.xml”,所以我的保存方法仍然会负责序列化并创建文件路径,即使它只是它的一部分),但我可能是错的。 – 2010-04-23 08:27:57

+0

你没有错。我的答案是不完整的,因为它不能确保类之间的关注的适当分离。解决方法是使用数字3.将所有可能更改的数据放在配置文件中(这将允许您在不触及代码的情况下更改位置),然后,SerializationPathManager将封装对参数的所有访问权限,并且仅限ONLY出现两种方法:getCustomerPath(customerID)和getProductPath(productID)。一个ID进入并且适当的路径熄灭,没有人知道除了SerializationPathManager之外的任何文件路径或扩展。 – 2010-04-23 14:14:16

+0

好的谢谢你的时间:) – 2010-04-23 14:58:28