团队项目合作探索系列二:开发模式
关于开发模式的文章实在太多了,多得让人越看越糊涂.到谷歌里随便一搜索,就能找出成千上万的文章.
那开发模式到底是什么,这样题目很难回答,因为他是抽象的,但是原理是明确的,我来讲个示例:
现在,我需要在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
分享到:
相关推荐
增量模型是一种分阶段交付软件功能的开发模式,通过一系列的迭代来逐步构建完整的软件系统。每一个迭代周期都会产出一部分可操作的产品。 - **特点**: - 每个增量均发布一个可操作的产品。 - 不需要等待所有需求...
结合以上内容,我们可以看到这两本书籍涵盖了软件工程的重要方面,不仅涉及项目管理和团队协作的基础理论,还涵盖了移动应用开发的实战技巧和软件设计的高级概念。无论是对于希望提升个人技能的Android开发者,还是...
### 华为公司产品开发的IPD模式研究 #### IPD模式概述 集成产品开发(Integrated Product Development,简称IPD)是一种系统化的研发管理模式,在近年来备受国内外高科技行业的关注。IPD模式的核心在于建立一个以...
《敏捷开发模式在本科计算机科学与技术专业教学中的应用探索》这篇文章由李中华和倪明涛两位作者发表在《科技信息》期刊上,探讨了如何将敏捷开发模式引入本科计算机科学与技术专业的教学中,以提升教学效果和学生...
研究生团队可以结合两种模型的优点,采用“混合型”开发模式,即在项目初期采用瀑布模型确定总体框架,而在具体实施阶段采用敏捷开发,以便灵活应对需求变更和技术挑战。 #### 3. 面向服务的架构(SOA) 论文提到SOA...
探索开发模式之 CMMI、RUP、MSF 和敏捷 软件开发行业中有多种开发模式,但 CMMI、RUP、MSF 和敏捷四种模式是当前最流行的。每种模式都有其特点和优缺,了解这些模式的特点和应用场景是非常重要的。 CMMI...
本文以嵌入式机器人应用开发课程为例,探讨了基于深度学习理论的教学模式探索与实现方法,着重介绍了深度学习能力框架及其在课程教学改革中的应用。 首先,深度学习是一种与浅层学习相对的概念,其特点在于强调学习...
敏捷开发是一种起源于1990年代的软件开发模式,它与传统的瀑布模型相比更加注重团队间的紧密协作和适应性,强调开发过程中的快速迭代和持续反馈。敏捷开发认为面对面沟通比书面文档更能直接有效传达信息,支持频繁...
该方法强调让学生自主发现和思考问题,然后结合软件工程师在解决类似问题时所应用的成熟技术,使学生能够更系统和深刻地理解软件开发模式以及开发过程中涉及的SSH等技术。 Java Web项目整合开发渐近式教学探索与...
通过团队合作完成复杂的软件项目,学生能够在项目实践中学会如何解决实际问题,从而提高其创新思维和解决复杂问题的能力。 综上所述,企业软件开发模式在C语言实践教学中的应用研究,为我们提供了一种创新的教学...
知识点任务让学生在课前自主学习,实践项目任务则鼓励学生在课堂上通过小组合作完成,以提升实际操作能力和团队协作技巧。 总结起来,"基于CDIO的Android开发基础"课程翻转课堂教学模式实践探索旨在通过适应现代...
在“软件开发新模式文章集锦”中,我们可以深入探索一系列关于现代软件开发的重要主题,这些主题涵盖了从项目管理到质量保证的关键方面。以下是对每个文件名所代表知识点的详细阐述: 1. **共创软件联盟简介.doc**...
【基于项目式教学的安卓开发公选课改革探索】 这篇论文主要探讨了如何改革传统的安卓开发教学,以适应公选课学生,特别是那些没有编程基础的学生。作者王艳芬提出了一个创新的教学模式,旨在激发学生的兴趣,提升...
总的来说,运用项目教学模式进行《Java Web应用开发》课程设计,旨在通过实践驱动,培养学生的解决问题能力、团队协作能力和自主学习能力,使他们更好地适应未来职场的需求,成为一名合格的Java Web开发者。
项目管理的内涵涵盖了一系列技术和知识技能的应用,旨在满足项目相关方的期望,通过计划、组织、指导和控制项目活动来确保项目目标的达成。项目管理具有探索性、复杂性、整体性和协调沟通的需要,它需要企业在面对...
在提供的资源"030908_【第09章:Servlet程序开发】_WEB开发模式:Mode I与Mode II.avi"中,可能包含了对这两种模式的详细讲解,包括它们在实际项目中的应用示例、如何在Java Web环境中实现分层架构,以及如何利用...
【Java企业级开发课程研讨式教学模式探索】 Java企业级开发课程是软件工程专业中针对Java语言实践性教学的重要组成部分,旨在让学生掌握企业环境中Java开源框架的应用和技术概念。传统讲练一体的教学方式在应对这门...
通过与实训机构合作,学生可以在企业环境中进行封闭式实训,体验完整的项目开发流程,培养团队协作和实际操作能力。 在取得的成效方面,校企合作模式下的实训基地建设提升了韩语专业的内涵建设,如专业试点和人才...