Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
最佳实践Java包设计_Java_Packages - Fatal编程技术网

最佳实践Java包设计

最佳实践Java包设计,java,packages,Java,Packages,我目前正试图弄清楚如何设计一个小应用程序。 该应用程序是一项服务,它有一些文件作为输入(excel文件或pdf文件,代表第三方公司的报告),其输出应是从各种报告生成pdf发票。然后,这些发票将亲手发送给报告签发公司。我知道如何让应用程序做我想做的,但目前所有类都在一个包“默认包”中。我想改变这一点。所以我开始重新命名这些类,这样它们就可以被比喻成一个“办公室”。 以下是我当前的类和接口: OfficeDesk(一切事物的中心) 转换器(打开pdf和excel文件,将其解析为字符串) 报表(表示

我目前正试图弄清楚如何设计一个小应用程序。 该应用程序是一项服务,它有一些文件作为输入(excel文件或pdf文件,代表第三方公司的报告),其输出应是从各种报告生成pdf发票。然后,这些发票将亲手发送给报告签发公司。我知道如何让应用程序做我想做的,但目前所有类都在一个包“默认包”中。我想改变这一点。所以我开始重新命名这些类,这样它们就可以被比喻成一个“办公室”。 以下是我当前的类和接口:

  • OfficeDesk(一切事物的中心)
  • 转换器(打开pdf和excel文件,将其解析为字符串)
  • 报表(表示pdf或excel报表文件内容的对象)
  • ReportBook(所有报告的列表)
  • 簿记员(将报告字符串转换为报告,将报告添加到报告簿,实现ReadingSkill)
  • ReadingSkill(接口,强制簿记员能够将字符串转换为报表对象)

  • 排字机(一些通用字符串实用程序)

  • 打字员(将报告书转换为pdf格式,使用排字机,实现发票打字技能)
  • InvoiceTypingSkill(强制打字员实现诸如TypeReportTable()、TypeDueDate()等方法)
  • JobAgency(一种服务,它会简单地查看pdf文件,以确定pdf文件的来源(报告公司),然后为该工作提供一名专业簿记员(簿记员的一个子类,即WeylandCorporation簿记员,该簿记员是指知道如何阅读Weyland Corporation报告的簿记员)或打字员)
有了这些,我有很多类需要使用ReportBook和Report,我计划将它们放入“filingcabinet”包中。所以现在簿记员进口文件柜。打字员也是,等等。。。 我如何包装这个,这样包装就不需要彼此了?或者他们互相使用是一种良好的习惯? f、 e

  • 簿记员。书面记录簿(报告记录,报告簿)
  • 簿记员.writeRecordToBook(字符串[对象]记录,向量书)
  • 我认为(1.)更具可读性,但它迫使簿记员有依赖性。另一方面,(2.)没有依赖关系,只有普通java类型,但可读性较差。这里有什么更好的练习?还有,您将如何命名这些包(或者应该只有一个,类数量如此之少)

    我目前的包裹是

    • 办公室(课程:OfficeDesk)
    • 文件柜(类别:报告书、报告)
    • 服务(类别:职业介绍所、翻译、排版)
    • 服务.簿记(类:簿记员、阅读技能、所有簿记员子类)
    • 服务.打字员(类别:打字员、发票打字员技能、所有打字员子类别)
    我意识到这本可以写在一个更简洁的例子中,但感谢阅读和任何意见

    我通常跟着。它绝对不是一个实际的引用,因为没有引用,但它有帮助。