在看一些关于设计的书籍,总结经验,发现了这次南昌项目开发中设计的一些问题.
数据库类是按照数据库的对象和操作来划分类和行为的,暂时感觉没啥问题.
但是业务类就有问题了,开发的时候跟着流程走,所以感觉大部分是面向过程而非对象的.
现在开来,看了流程文档,对于业务类的分析应该做的事情是:从流程里面提取Actor,
然后根据每个Actor在流程中的操作添加相应的行为,而页面则应该是根据流程调用,相应类的行为.
如果采取这种方式对代码重用性和可扩展性和可读性还可以得到改进。
举个例子:业务树部分,在每个模块里面都有业务树操作,而且还分角色,一共就有十几个二十几个类似的方法了,
但是如果建一个业务树工厂类,采用工厂方法就只有几个方法了,方法根据传入的不同用户类型和sql语句的actionCode
再举个例子:如果设计用户为接口,继承它的有抽象类-管理员,普通用户类,而继承管理员抽象类的又分三种管理员。
这样分类的化,可以把原先登录,注册,用户增删改分别放入这棵继承树的不同层次,又减少了代码,又有可扩展性。
但是从项目管理的角度来说,心中存在着疑问:
如果用面向对象的方式来做,可能增加了对象的层次,所以增加了开发人员读懂设计人员设计的难度,
在开发协作方面似乎需要更多的交流,需要更多通过类图来表达类层次,而并非现在仅有的流程图。
我现在这么通过流程来设计业务类,对于前台开发两位人员来说道是方便了,只要根据流程图,调用功能模块的方法。
按照一些更大型的项目,采用的是按照机能来分模块开发的方式。
机能即为功能,似乎有点面向过程的味道,比如开发的模块也是分登录模块,某某操作模块,但感觉这些都该是对象的行为。
所以相应的这种开发方式在项目管理方面使用的是loc法,即代码行数来测试功能。
无论如何,面向对象是有它存在的价值的,如果一个开发人员对面向对象了解的透彻就能减少沟通的次数。
但是从面向对象的好处来说,减少代码量,同时减少出错的机会,又有扩展性,利远大于弊。
分享到:
相关推荐
学习玩Java面向对象,就决定把所有的相关知识点串联起来,这样不仅便于记忆,而且能够很好的复习学过的知识。
面相对象的业务流程图,需要的下载哦!希望对你有帮助!
本书系统地讲述了面向对象技术的相关内容,包括面向对象的基本概念、面向对象开发的流程、面向对象的各种技巧,以及如何应用面向对象思想进行架构设计。在讲述相关知识或技术的时候,除了从“是什么”这个角度进行...
Java面向对象,自己学习整理的Java的面向对象的思维导图。
北京工业-面向对象最终课设-代码【参考】
java学习好材料,面向对象从软件建模方法论的角度上看,应用软件系统的开发方法已历经两代技术变 更,由面向过程发展到现在主流的面向对象的方法。面向过程包括面向功能和面 向数据流程。面向对象的思想用对象和对象...
本文主要介绍了面向对象的软件工程的应用研究。包括软件工程方法的流程,面向对象的软件工程方法,面向对象建模等。
JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库
《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码...
面向过程(Process Oriented)这个词是在面向对象(Object Oriented)出现之后为与之相对而提出的。其实它在以前基本被叫做“结构化编程”。 早期的程序设计,大量使用共享变量(全局变量)和GOTO语句一类的东西,...
本书提供了从面向对象设计到Java应用系统设计相当完整的工作流程,具有很强的实用性。每章还附有补充练习,对于读者灵活运用书中主要知识很有帮助。 由于本书来源于作者蝗对象入门和Java程序设计语言两门课程的讲义...
软件工程 实验二 面向对象的软件分析与设计 包括了整个实验流程
面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...
使用Xmind软件大概绘制了一下java面向对象的学习流程,欢迎交流指教! 面向对象基础 进阶 高级 写的框架很细, 初学者可以做参考学习。 谢谢!
面向对象软件开发过程是现在主要应用的一种技术,它和面向过程形成了鲜明的对比。
影像信息提取之面向对象特征提取流程.docx
【面向对象程序课程设计】学生考勤系统(含源代码)VC6.0可运行,
这是一个很实用的软件,是你等容易懂的程序!而且生成图很准确。是个学习程序设计的好帮手。只要在电脑上安装后,找到程序即可自动生成流程图!
JAVA面向对象自动取款机操作流程(新手必看)
面向对象程序设计,、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; 2)、系统设计要实用,编程简练,可用,功能全面 3)、说明书、流程...