[英]Java: Is it bad practice to have same package name in the different libraries?
[英]Bad practice to have two classes of the same name in different packages?
我們已經拆分了我們的應用程序,以便 package A 處理來自一個外部源的數據,而 package B 來自另一個源。 在這兩種情況下,我們都需要創建一個域 object 並使用“Transformer”來執行此操作。
所以我有com.foo.bar.a.ThingTransformer
和com.foo.bar.b.ThingTransformer
我懷疑這是不好的做法,但想看看 SO 的好人是怎么想的。
不是很糟糕的做法,因為在許多領域都有相似的術語,所以你最終會擁有相同的名字。 另一方面,如果兩者都在同一個域中,但只是不同的實現,您可以(以某種方式)在名稱中指明實現細節。
如果您必須在同一個源文件中同時使用兩者,那么非常難看的事情是,在這種情況下,您必須至少使用一個完全限定的名稱。
例子:
java.util.List
java.awt.List
在名稱中指明實現:
java.util.ArrayList
java.util.LinkedList
沒關系。 這正是為什么在設計上,不同的包有不同的命名空間。
這沒什么錯,因為您不太可能在同一代碼中同時使用這兩個類。 在所有 class 名稱中復制與 package 的 a/b 區別會更糟。
您必須決定這是否更有幫助或更令人困惑。 在相同的 package 中使用相似的名稱,您可能會遇到相同的問題,其中區別不明確。
一個比有用的更令人困惑的例子是
com.sun.corba.se.internal.Interceptors.PIORB extends
com.sun.corba.se.internal.POA.POAORB which extends
com.sun.corba.se.internal.iiop.ORB which extends
com.sun.corba.se.impl.orb.ORBImpl which extends
com.sun.corba.se.spi.orb.ORB which extends
com.sun.corba.se.org.omg.CORBA.ORB which extends
org.omg.CORBA_2_3.ORB which extends
org.omg.CORBA.ORB
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.