团队项目合作探索系列二:开发模式
关于开发模式的文章实在太多了,多得让人越看越糊涂.到谷歌里随便一搜索,就能找出成千上万的文章.
那开发模式到底是什么,这样题目很难回答,因为他是抽象的,但是原理是明确的,我来讲个示例:
现在,我需要在A 类中引用B类,请问我们应该如何做呢,在C++与Java中有什么差别.
天啊,这么简单的问题,没错,确实很简单,一般我们的做法,如同C++一样,如图:
一般,我们的做法就是:
classB classb = new classB();
这也是C++的做法,也就是C++的模式,应该说C++没有模式之说.而我们做JAVA时通常的做法也是如此,直接NEW一个对象来进行调用.
但是,我们现在利用J2EE常用的开发模式思想来设计我们的日常开发.那么我们应该怎样做呢.
没错,我们不应该直接调NEW方法来创建classB对象,我们应该调classB的接口,如下图:在classA中通过calssB的接口来调用classB.
恭喜你,你已经开始有J2EE的开发模式有所掌握了.这种模式很常见,用得也是最广泛的,比如在我们的ssh框架中就大量存在.如我们的三层框架类就是这样的大量接口,servce通过接口调DAO.当然这个过程也不是完全符合.
但是JAVA众多模式所提的不仅仅就是这一点点.其模式据说已经成文的就多达25种之多.
我再将上面的模式变化一下,如下图所示:ClassA不直接操作创建ClassB,而是把这个创建ClassB的任务交给另一个对象ClassC.
大家一眼就看出来了,这就是经典的工厂模式,ClassC就是那个工厂或者说装配器.
但是这样做还不够,配合前面的模式,在ClassC与ClassB之间再加上ClassB的接口.变成如下所示:
这样看起来似乎不错,不过,我们应该在ClassA与ClassC之间也尝试分离开来.结果如下:
但是这样做,我们还是觉得有点不太舒服,因为在ClassA要ClassB时,我还是要明确的告诉ClassC帮我创建ClassB,而且ClassA还必需明确的知道ClassC,所以就产生了一种模式,叫做代理模式,ClassA不再通过IClassC接口调ClassC,再通过ClassC来创建ClassB这种方式,改成如下方式:
ClassA只管使用ClassB接口里的对象,而不用管是谁帮他创建了ClassB,而ClassC只管生产创建ClassB,而不用管是谁要这个对象.应该说,Spring框架就有点像这种模式,不过实际上并不一样.
好啦,基本上,J2EE的开发模式与这几种大同小异,而介绍出来的这几类也是使用最多最常见的也是最实用的,当然也是我现在掌握了解的几种,但是,作为日常开发而言,是足够的,但是,我们想进一步提高我们的技术,特别是做技术构架以及项目设计时,这些还远远不够,我们需要了解更多,更多.
归结一下:作为JAVA的开发设计模式,有很多,但是这么模式,归根到底,都是同样的原则,那就是让JAVA开发更加快捷,方便,稳健等.以及代码的高内聚和低耦合.每种模式都有各自的优点,我们在开发之中应该灵活采用相应的模式.
没有最好的模式,只有合适的模式,灵活合理的采用不同的模式,才能让你的开发更加有效~~~~~~~欢迎大家一起来讨论这种话题!
本文原文发表在我的个人博客上: http://www.busfly.net/post/teamwork-02-Modes-java-cpp.html
- 大小: 6.2 KB
- 大小: 8 KB
- 大小: 7.9 KB
- 大小: 10.5 KB
- 大小: 12.2 KB
- 大小: 11.6 KB
分享到:
相关推荐
服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 ...
8.2.5以不同方式组织项目团队192 8.2.6对领域和有界上下文的CQRS适用性进行评估192 8.2.7为性能进行规划192 8.2.8重新考虑用户界面193 8.2.9探索事件源的其他用处193 8.2.10探索有界上下文的集成问题193 8.3更多信息...
鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...
这份源码是基于流行的2048游戏规则,精心打造的一款小程序游戏。...无论是对于个人开发者还是团队项目,这份资源都是一个极佳的选择,它不仅能帮助您快速构建自己的游戏应用,还能助您深入探索小程序开发的魅力。
资源介绍 本次为大家带来的资源是“基于Spring Boot开发的美发门店...总之,“基于Spring Boot开发的美发门店管理系统”毕业设计项目是一个集学习、实践和应用于一体的优秀资源,值得广大开发者和学生深入研究和探索。
云原生开发模式和最佳实践 这是发布的的代码存储库。 它包含从头到尾完成本书所必需的所有支持项目文件。 关于这本书 原生云是一种利用云优势构建系统的现代方法。 借助云原生开发,团队可以比以往更快地构建应用...
态度、人际交往、团队合作、工匠精神等方面的素养。促进教学过程 与生产过程对接、课程内容与职业标准对接、专业设置与产业需求对 接,推进软件测试人才培养,深化软件测试实践教学改革,探索产教 研融合的软件测试...
该模式以教师工作室培养学生创新能力为主线,以创新项目开发与实现为导向,培养学生解决实际问题的能力,团队协作能力,创新思维能力和战胜困难的毅力。鼓励学生参加创新性实验竞赛,使学生具备灵活应用专业知识能力,通过...
自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。 更多其他QCon大会PPT:...
此外,项目还强调了创新的商业模式,包括与农户合作收集原料、建立线上销售平台以及提供定制服务等策略,以增加产品的市场竞争力和盈利能力。报告中也提到了团队对于未来发展趋势的预判,比如通过持续的技术研发来...
综上所述,这份报告不仅为大学生创业提供了一个切实可行的项目方案,而且体现了团队对文化遗产保护和创新发展的深刻理解,展现了年轻一代对于传统文化传承与现代化融合发展的探索精神。重新回答||
他们强调了不仅需要具备扎实的技术功底,还需要具备良好的沟通能力和领导力,以便能够在团队中有效地推动项目的实施和交付。我意识到,作为一名架构师,只有全面发展自己的技能,才能在职业道路上不断成长并取得更大...
项目团队将致力于研发新技术、探索新模式,并通过持续改进,提升产品竞争力和市场占有率。总体而言,该可行性研究报告为大学生创业提供了一份全面的规划和深入的分析,展现了一个既具前瞻性又立足现实的创业蓝图。...
不夜城地源热泵系统项目是一个针对城市可持续能源利用的创业计划,旨在通过开发和实施地源热泵技术来提供清洁、高效和可再生的供暖及制冷解决方案。该项目由一组具有前瞻性思维的大学生提出,他们认识到随着城市化的...
态度、人际交往、团队合作、工匠精神等方面的素养。促进教学过程 与生产过程对接、课程内容与职业标准对接、专业设置与产业需求对 接,推进软件测试人才培养,深化软件测试实践教学改革,探索产教 研融合的软件测试...
敏捷项目管理作为新兴的项目管理模式,简化了传统项目管理的繁琐流程和文档。以Scrum为代表,欢迎需求变更,在客户需求不明确的时候,以在较短的周期内开发出可用的软件为目标,来帮助客户描述自己的需求。迭代过程...
我们拥有一支充满激情、富有创新精神的年轻团队,具备丰富的互联网产品开发和运营经验。同时,我们也对市场规模、竞争对手、用户需求等方面进行了深入调研和分析,为项目的顺利实施提供了有力保障。总之,“互联网-...
该报告深入分析了当前汽车市场的态势、消费者需求、以及竞争环境,并结合大学生创业者的特点,提出了一系列创新的商业模式和管理策略。报告认为,随着科技的发展和消费者偏好的变化,汽车市场正在迎来新的发展机遇,...