Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 如何设计用于管理文件路径的类?_Oop - Fatal编程技术网

Oop 如何设计用于管理文件路径的类?

Oop 如何设计用于管理文件路径的类?,oop,Oop,在我的应用程序中,我生成了一些xml文件,例如:“/xml/product/123.xml”,其中123是产品的id,123.xml包含有关该产品的信息。我还有“/xml/customer/123.xml”,其中123.xml包含有关客户端的信息。。。123 如何管理这些文件路径: 我直接在序列化方法中创建文件路径 我创建了两个静态类:CustomerSerializationPathManager和ProductSerializationPathManager,其中有一个方法:getPath(

在我的应用程序中,我生成了一些xml文件,例如:“/xml/product/123.xml”,其中123是产品的id,123.xml包含有关该产品的信息。我还有“/xml/customer/123.xml”,其中123.xml包含有关客户端的信息。。。123

如何管理这些文件路径:

  • 我直接在序列化方法中创建文件路径
  • 我创建了两个静态类:CustomerSerializationPathManager和ProductSerializationPathManager,其中有一个方法:getPath(intCustomerId)和getPath(intProductId)
  • 我创建了一个静态类:SerializationPathManager,它有两个方法:getCustomerPath(intCustomerId)和getProductPath(intProductId)
  • 别的
  • 我更喜欢解决方案3,因为如果我认为更改此类只有一个原因:我更改根目录


    所以我想听听你的想法。。。thx

    如果需要将文件保存在特定文件夹中,并且这些文件的位置可能会更改,则应将此信息移动到配置文件中,然后在配置文件中使用If

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

    配置文件可以是简单的.properties文件:

    customer_path=/xml/customer/
    product_path=/xml/product/
    
    生成XML(无论是客户、产品还是其他)时,请将适当的路径(
    getPathForCustomerExports
    getPathForProductExports
    )预先添加到文件名


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

    如果需要将文件保存在特定文件夹中,并且这些文件的位置可能会更改,则应将此信息移动到配置文件中,然后从那里使用If

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

    配置文件可以是简单的.properties文件:

    customer_path=/xml/customer/
    product_path=/xml/product/
    
    生成XML(无论是客户、产品还是其他)时,请将适当的路径(
    getPathForCustomerExports
    getPathForProductExports
    )预先添加到文件名


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

    为什么在生成文件时需要管理文件路径?如果您指定原因,您将得到更好的答案。因为我将有关我的产品和客户的数据保存在xml文件中。。。我为什么这么做?因为我的网页设计师更喜欢用xslt来显示信息,所以你需要在特定的文件夹位置使用这些数据吗?您只想管理保存XML的位置?我只需要管理位置。为什么在生成文件时需要管理文件路径?如果您指定原因,您将得到更好的答案。因为我将有关我的产品和客户的数据保存在xml文件中。。。我为什么这么做?因为我的网页设计师更喜欢用xslt来显示信息,所以你需要在特定的文件夹位置使用这些数据吗?您只想管理保存xml的位置?我只需要管理该位置。此解决方案的唯一问题是,我在保存方法中会看到一个字符串“.xml”,因此我的保存方法仍将负责序列化和创建文件路径(即使它只是其中的一部分),但我可能错了。您没有错。我的回答是不完整的,因为它不能确保在类之间适当地分离关注点。解决办法是选择你的3号。将所有可能更改的数据放在配置文件中(这将允许您在不接触代码的情况下更改位置),然后,SerializationPathManager将封装对参数的所有访问,并仅公开两个方法:getCustomerPath(customerID)和getProductPath(productID)。ID进入,正确的路径退出,除了SerializationPathManager之外,没有人知道任何文件路径或扩展名。此解决方案的唯一问题是,我在保存方法中会看到字符串“.xml”,因此我的保存方法仍将负责序列化和创建文件路径(即使它只是其中的一部分),但我可能错了,你没有错。我的回答是不完整的,因为它不能确保在类之间适当地分离关注点。解决办法是选择你的3号。将所有可能更改的数据放在配置文件中(这将允许您在不接触代码的情况下更改位置),然后,SerializationPathManager将封装对参数的所有访问,并仅公开两个方法:getCustomerPath(customerID)和getProductPath(productID)。一个ID进入,正确的路径离开,除了SerializationPathManager,没有人知道任何文件路径或扩展名。