小编Kar*_*rly的帖子

最佳实践Java包设计

我目前正在试图弄清楚如何设计一个小应用程序.该应用程序是一个服务,它有一些文件作为输入(excel文件或pdf文件,代表来自第三方公司的报告),其输出应是从各种报告生成pdf发票.然后将这些发票手工发送给报告发行公司.我知道如何让应用程序做我想要的,但目前所有类都在一个包"默认包"中.我想改变这一点.所以我开始重命名这些类,以便它们都适合一个metaphore:一个"办公室".这些是我当前的类和接口:

  • OfficeDesk(所有东西的中心)
  • 翻译器(打开pdf和excel文件,将它们解析为String)
  • 报告(表示pdf或excel报告文件内容的对象)
  • ReportBook(所有报告的列表)
  • BookKeeper(将报告字符串转换为报告,将报告添加到ReportBook,实现ReadingSkill)
  • ReadingSkill(接口,强制BookKeeper能够将String转换为报表对象)

  • TypeSetter(一些常规String实用程序)

  • 打字员(将ReportBook转换为pdf,使用TypeSetter,实现InvoiceTypingSkill)
  • InvoiceTypingSkill(强制Typist实现TypeReportTable(),TypeDueDate()等方法.)
  • JobAgency(一种简要查看pdf文件以决定pdf来自哪个来源(报告公司)的服务,然后提供专门的BookKeeper(BookKeeper的子类,fe WeylandCorporationBookKeeper,用于知道如何阅读报告的簿记员) Weyland Corporation)或打字员的工作)

有了这个,我有很多需要使用ReportBook和Report的类,我打算将它放入"filingcabinet"软件包中.所以现在BookKeeper进口filingcabinet.打字员也是这样,等等...我怎么打包这个,这样包不需要彼此?或者实际上他们互相使用是一种好习惯吗?FE

  1. BookKeeper.writeRecordToBook(ReportRecord Record,ReportBook Book)

  1. BookKeeper.writeRecordToBook(String [Object] Record,Vector Book)

我认为(1.)更具可读性,但强迫BookKeeper具有依赖性.另一方面,使用(2.),没有依赖,只有常见的java类型,但可读性较差.这里有什么更好的做法?你也会如何命名这些包(或者只应该有一个包含这么少的类)

我目前的包裹是

  • 办公室(类:OfficeDesk)
  • filingcabinet(类:ReportBook,Report)
  • 服务(类:JobAgency,Translator,TypeSetter)
  • services.bookkeeping(类:BookKeeper,ReadingSkill,所有BookKeeper子类)
  • services.typist(classes:Typist,InvoiceTypingSkill,所有Typist子类)

我意识到这可能是用更简洁的例子写的,但感谢阅读和任何意见/建议!

java packages

7
推荐指数
0
解决办法
393
查看次数

标签 统计

java ×1

packages ×1