我们正在开发一个基于Java的系统,我们正在寻找最佳的设计模式,它将随着应用程序的发展而增长,即使随着时间的推移将增加更多的模块。
目标是:
例如,学生将被分配,支付,论坛,课程,如果是一般的客户付款,购物等。如果一个学生想购物,你升级他的帐户和添加购物模块到他和他的帐户,更新课程,以显示他购买了一本书,例如,“在Java的Concurreny”。
哪一种最好的设计模式将与我们一起工作?您推荐的任何建议或我可以查看的材料
我们如何实现几乎完美的数据库设计?您可能拥有的引用?
任何更多的建议都将被接受并受到欢迎。
发布于 2013-04-19 05:29:48
我过去成功使用过的一个模块化模式是消息总线。本质上,学生(或教授或管理员等)不直接与支付、论坛或课程等模块交谈,而是通过消息总线进行所有通信(例如,学生向总线发送消息,后者将消息发送给论坛)。这条消息总线可以是ConcurrentLinkedQueue或LinkedBlockingQueue,也可以是第三方软件的一部分,比如RabbitMQ、ActiveMQ或Amazon;每个消息总线都有其优点和缺点,您需要权衡一下,但您并没有完全陷入您的决定--我做过一个项目,我们从Amazon切换到RabbitMQ,重写消息格式的工作也没有那么复杂。
消息传递的好处是:
消息传递的主要缺点是其效率-模块通过复制数据而不是授予直接访问的方式进行通信。但是,从长远来看,您会发现这将使使用多线程实现模块变得更加容易,这可能会带来净效率的提高。
https://stackoverflow.com/questions/16087855
复制相似问题