我有一个类叫serverUser,它有2个子类,一个是SSH的User,一个是FTP的User, 然后我有2个功能模块,一个是ssh的一些操作,一个是ftp的操作,相应的都有一个包,所以我的疑问是,我是将这3个User放在一个包里面?还是分拆到2个功能点里面?如图,又没有什么科学依据?
类似的还有?比如我有很多异常的定义,是将异常定义统一放一个包里面管理,还是分布到不同的要的模块里面管理。 感觉分布到不同的模块里面的话,符合共同关闭原则,即修改只修改一个包,但是不利于导航。
我有一个类叫serverUser,它有2个子类,一个是SSH的User,一个是FTP的User, 然后我有2个功能模块,一个是ssh的一些操作,一个是ftp的操作,相应的都有一个包,所以我的疑问是,我是将这3个User放在一个包里面?还是分拆到2个功能点里面?如图,又没有什么科学依据?
类似的还有?比如我有很多异常的定义,是将异常定义统一放一个包里面管理,还是分布到不同的要的模块里面管理。 感觉分布到不同的模块里面的话,符合共同关闭原则,即修改只修改一个包,但是不利于导航。
很多时候,这是个人设计的经验积累以及习惯决定的。
比如说:jdk中的java.security包。这个主要解决安全相关的问题(证书、公钥、私钥、签名等等)。
现在具体看看异常类
java.security.AccessControlException类主要捕获访问控制的异常,放到java.security包中。
再看另一个java.security.cert.CertificateException类主要捕获各种证书问题导致的异常。该类放到java.security.cert包中。
为什么AccessControlException放到java.security包中,而CertificateException放到子包cert中?
很明显:证书问题导致的异常仅仅是安全范畴的一个子域,并且很多应用中不会用到证书,所以在package的划分上,类似于分而治之,单独放到cert包中。但是访问控制异常是围绕整个安全领域的,所以放到了安全的顶级package中:java.security。