最近我在按功能打包java代码时遇到了这个javalobby帖子http://java.dzone.com/articles/how-changing-java-package.
我喜欢这个想法,但我对这种方法的问题很少.我问了我的问题,但没有得到满意的答复.我希望StackOverflow上的某个人可以澄清我的问题.
我喜欢逐个功能的想法,它可以大大减少编码时移动包的时间,所有相关的东西都在一个地方(包).但是不同包中的服务之间的交互呢?
假设我们正在构建一个博客应用程序,我们将所有与用户相关的操作(控制器/服务/存储库)放在com.mycompany.myblog.users
包中.并且包中的所有博客相关操作(控制器/服务/存储库)com.mycompany.myblog.posts
.
现在我想显示用户个人资料以及他发布的所有帖子.我应该叫myblog.posts.PostsService.getPostsByUser(userId)
从myblog.users.UserController.showUserProfile()
?
包之间的耦合怎么样?
无论我在哪里阅读有关逐个功能的内容,每个人都说这是一个很好的做法.那么为什么许多书籍作者甚至框架都鼓励按层分组呢?只是好奇知道:-)
我有2个项目.
项目#2引用了项目#1
现在我需要在Project#1中引用Project#2,但是vs.net抱怨循环依赖.
有没有办法解决这个问题?
最近我听说OOP(Java)有9条规则.我只知道四个是抽象,多态,继承和封装.OOP还有更多规则吗?
在使用稳定抽象原理(SAP)阅读此维基之后,我想知道是否有人知道取决于抽象而不是混凝土的任何缺点(我认为,这超过了优势).
SAP声明包越稳定,它应该越抽象.这意味着如果包装不太稳定(更有可能改变),那么它应该更具体.我真的不明白为什么会出现这种情况.当然,在所有情况下,无论稳定性如何,我们都应该依赖于抽象并隐藏具体实现?
我很想知道人们如何组织他们的代码库,特别是关于可重用组件.我在下面以OO术语进行讨论,但我对如何组织其他类型语言的库感兴趣.
例如:
等等
编辑
我不是在寻找具体的指导,我只是对人们的想法和实践感兴趣.我特别感兴趣的是在不同项目之间重用代码,而不是在单个项目中.(不幸的是,这里使用"项目"具有误导性 - 我的意思是在为客户进行的实际项目之间重用,而不是Visual Studio意义上的项目.)
我在设计数据库的过程中工作了很长时间,而且这些天我也在使用C#.OO对我来说很有意义,但我并不觉得我对OO设计的深层理论有很好的基础.
在数据库领域,关于如何设计数据库结构有很多理论,主要概念是规范化.规范化直接控制数据库的结构,并在某种程度上决定如何在数据库中排列实体.
在如何设计面向对象程序的结构方面是否有任何类似的概念?
我所要达到的是一个或多个潜在的理论原则,它自然地引导开发人员进入解决特定问题的"正确"设计.
我在哪里可以找到更多信息?
我应该读一下上班的工作吗?
感谢大家的回答.我正在阅读的内容似乎没有"OO设计的大理论",但是有一些重要的原则 - 主要是设计模式的例子.
再次感谢您的回答:)
oop ×3
architecture ×2
c# ×1
c++ ×1
dependencies ×1
java ×1
java-ee ×1
organization ×1
reusability ×1
rules ×1
spring ×1