下级包我的意思是a.b.c.d包和更高级包我的意思是a.b.c,我已经使用了相互之间的关系。我不确定是否有定义这些级别的术语。然而,从面向对象的角度来看,我想知道从a.b.c.anotherClass.anotherMetod()调用a.b.c.d.aClass.aMethod()是否是个好主意。在我看来,a.b.c应该被设计为不知道a.b.c.d包,因为a.b.c.d代表a.b.c的更具体的形式或逻辑上来说低于 a.b.c的东西。在较高级别的包的类中使用较低级别的API的API是一个好主意吗?
0
A
回答
4
在任何情况下,建议不要使包之间的依赖关系变为双向。所以如果你有a.b.c包到a.b.c.d的依赖关系,你不应该从a.b.c.d到a.b.c有任何依赖关系。这被称为包缠结,这通常表示应用程序的高耦合和可能的分层。像Sonar这样的工具可以帮助您找到包装缠结。
我通常把我的API的接口放在较低级别的包中的更高级的包和实现中。所以参考文献将从较低层次的包到更高层次的包。
如果您的API驻留在较低级别的软件包中,则应该重新组织您的软件包。
+0
+1注意到依赖倒置原则 – 2010-07-12 22:54:23
相关问题
- 1. 具有较低API级别的C2DM?
- 2. 使用python(foursquare API)解析json文件中的较低级别?
- 3. 如何在Unity 2017.1.1中导入较低的API级别?
- 4. 在API 17中添加的方法也在较低的API级别工作
- 5. Android UnkownHostException在API级别较低的设备上
- 6. 如何在较低的执行级别
- 7. 提高我的最低API级别的更好方法?
- 8. 如何在较高级别启动用户级别的exe
- 9. vb.net:较低级别的调试
- 10. 覆盖较低级别的DENY权限
- 11. 如何删除比我使用的API级别更高的API级别样式?
- 12. 在api级别使用setUpdateListener低于19
- 13. 如何使导入的项目使用较旧的api级别?
- 14. API级别5上的选项卡非常暗,但是API级别4更低?
- 15. 复杂的select语句应该只读取较高的级别而忽略较低的级别
- 16. 如何在较低级别的回调中使用变量?
- 17. 在API级别的Android的<API级别旋转的ImageView 11
- 18. 什么是Windows上的较低级别:C库或相应的Win32 API函数?
- 19. 使用API级别低于21的Activity类的finishAndRemoveTask()方法
- 20. 使用Valgrind的,低级别的C++ API它们是巨型
- 21. Android:使用Google Vision API的最低API级别要求?
- 22. 上级看到较低级别的选项
- 23. 如何用较低的API级别进行编译?机器人:targetSdkVersion被蚂蚁
- 24. 比较优先级队列的类别
- 25. 什么使const在机器的较低级别?
- 26. API级别是什么意思?
- 27. 如何在HtmlUnit中设置较低级别的隐私
- 28. 如何在Java中定位较低的语言级别
- 29. 在导航堆栈中从rootviewcontroller的较低级别访问DetailViewController
- 30. 高,低级别的显卡在J2ME
我同意你 – 2010-07-09 10:36:12