软件设计大作业
《软件工程课程设计》大作业

《软件工程课程设计》大作业软件工程课程设计大作业
简介
本次软件工程课程设计大作业要求学生设计并实现一个软件系统。
该系统应该采用面向对象程序设计方法,并且需要实现一定的业务逻辑。
设计要求
该系统需要实现以下功能:
1. 用户注册与登录
2. 查看、添加、修改和删除用户信息
3. 查看、添加、修改和删除商品信息
4. 查看、添加、修改和删除订单信息
开发工具与技术
开发工具:Eclipse、IntelliJ IDEA或其他Java开发工具;MySQL或其他关系型数据库管理系统。
开发技术:
1. 后端框架:Spring Boot或其他基于Java的后端框架
2. 前端框架:React或其他前端框架
3. 数据库访问框架:MyBatis或其他ORM框架
实现步骤
1. 设计系统的数据库表结构
2. 使用后端框架实现系统的业务逻辑,包括用户、商品和订单的增删改查功能
3. 使用前端框架实现系统的用户界面,并与后端进行交互
4. 测试整个系统是否符合要求并确保系统的稳定性和安全性
成果要求
1. 详细的系统需求说明文档
2. 数据库表结构文档
3. 后端代码
4. 前端代码
5. 系统运行说明文档
注意事项
1. 请严格按照要求完成项目,确保项目的质量和安全性
2. 开发过程中请保持良好的代码风格和文档编写惯,确保代码的可维护性和可读性
3. 请勿抄袭其他同学或网络上的代码,一旦发现将追究相关责任。
软件系统分析与设计大作业

NANCHANG UNIVERSITY小组概况组号:第 组 学号姓名班级 分工组长 8000113177 高爽超 软工133班 ERP 系统的架构,UML 绘制 组员 8000113166 罗崇飞 软工133班 设计模块的负责 组员 8000113174 方赖杨 软工133班 类间关系模块的负责 组员8000113136李根华软工133班 用例模块的负责课程名称: 软件系统分析与设计题 目: ERP 系统 任课教师: 刘老师提交时间: 2015年 6 月 21 日 学 期:2014-2015学年第2学期目录一、前言 (5)1.背景说明 (5)2.需求分析 (5)二、系统模块划分及功能 (5)1.模块划分 (6)1.1基础数据维护模块 (6)1.2信息查询模块 (6)1.3生产管理模块 (6)1.4销售管理模块 (7)1.5采购管理模块 (7)1.6仓库管理模块 (7)1.7数据库管理模块 (7)2.各子系统的功能 (7)2.1管理者子系统 (7)2.2财务子系统 (8)三、用例图 (8)1.主用例图 (8)2.ERP系统界面 (8)3.系统管理模块 (9)3.1数据库管理模块 (9)3.1.1员工信息管理 (10)3.1.2客户信息管理 (10)3.1.3订单信息管理 (10)3.1.4产品信息管理 (11)3.1.5报表信息管理 (11)3.2基础数据维护模块 (12)4.信息查询模块 (12)5.生产管理模块 (13)6.销售管理模块 (14)7.采购管理模块 (14)8.仓库管理模块 (15)9.财务管理模块用例图 (16)四、活动图 (16)1.数据库管理 (16)2.基础信息维护 (16)2.1添加员工信息 (17)2.2修改员工信息 (17)2.3添加订单信息 (18)2.4修改订单信息 (19)2.5添加产品信息 (19)2.6修改产品信息 (20)3.信息查询 (21)3.1订单信息查询 (21)3.2客户信息查询 (22)3.3员工信息查询 (22)3.4产品信息查询 (22)3.5报表查询 (23)4.生产管理 (24)5.销售管理 (25)6.采购管理 (25)7.仓库管理 (27)五、序列图 (28)1.数据库管理 (28)1.1信息添加 (29)1.2信息修改 (30)1.3信息删除 (31)2.基础数据维护 (31)2.1添加员工信息 (32)2.2修改员工信息 (33)2.3添加订单信息 (34)2.4修改订单信息 (35)2.5添加产品信息 (36)2.6修改产品信息 (37)3.信息查询 (38)4.生产管理 (38)5.销售管理 (39)6.采购管理 (39)7.仓库管理 (40)六、类图 (41)1.基础数据维护 (41)2.数据库管理 (42)3.信息查询 (43)七、状态图 (44)1.基础数据模块 (44)2.数据库模块 (45)3.信息查询模块 (45)八、组建图 (46)九、布局图 (47)十、数据模型图 (47)1.基础数据维护 (47)2.数据库管理 (48)十一、设计模式 (49)1. 创建型设计模式 (49)2. 结构型设计模式 (49)3. 行为型设计模式 (49)十二、用户界面 (50)一、前言1.背景说明企业资源计划或称企业资源规划简称ERP(Enterprise ResourcePlanning),由美国著名管理咨询公司Gartner Group Inc.于1990年提出来的,最初被定义为应用软件,但迅速为全世界商业企业所接受,现已经发展成为现代企业管理理论之一。
APP设计与制作大作业

APP 设计与制作大作业随着科技的发展,时代的进步,人们生活水平和收入的提高,越来越多的人选择去电影院看电影,为了身心放松,为了联络感情,为了潮流,为了追星或追剧,为了3D 既视感,亦或为了更好的享受生活。
而随着互联网的快速发展,网络平台已成了人们购买电影票的不二之选。
然而近年来,随着智能手机的普及,移动端开发受到了异常的关注。
从传统的安卓、IOS 原生手机系统应用开发,转向了移动端Web开发或者是混合开发,在iOS 上开发APP,需要通过Objective-C 那样精细复杂的语言去开发,这对广大的开发者而言是个不小的难题。
值得庆幸的是,开发者们也可以通过开发Web APP 来达到曲线救国的目的。
也就是说,可以通过HTML 、CSS或者JavaScript来进行Web APP 的开发。
我小组根据猫眼电影webAPP 的设计理念,自行开发了一个相对简单的名为易购票的电影购票webAPP。
二、意义随着当代人的生活水平的不断提高,人们可以采取的娱乐方式变得越来越多样,去电影院看电影就是其中的一种很好的方式,但是传统的窗口售票工作效率低,人们要排很长的队伍到窗口去排队购票,所以开发一个提供用户能够线上购买打折电影票的平台,就具有了一定意义,于此同时提供给了年轻人网上购票的一个全新的渠道。
三、规划设计1、登陆与首页2、影视界面通州区梨园南街北京华联常营购物札 16.77km近期场次:14:20|15:20|16:20|17:20|18:20|19L .金逸影城朝阳大悅城店40元起北京朝阳区朝阳北路U)I 号朝北大乩 22.77km15:20 原版3D“ C 40 元 i ⅛⅛Sl17:50偌束)5号厅3、影院选择界面14:20 ≡D 16:50(结束)44、座位选择界面四、市场调查1、电影购票APP 已成观众购票的主要渠道据统计,有20.86%的人是在影院直接购买电影票的,还有72.25%的受访者是通过在线选座APP 完成的国庆档购票,这里包含了各互联网品牌的在线选座APP 以及院线自有APP。
实用软件开发方法大作业-2

实用软件开发方法大作业-学生信息管理系统大作业要求:1、提交软件需求说明书,软件详细设计说明书打印稿,按照模板格式完成。
2、软件需求说明书用用例图和活动图进行说明,并要有用例描述。
用例图全部,活动图3个及以上。
用例描述三个及以上。
3、软件详细设计说明书要用类图、状态图、时序图说明,类图全部,状态图、时序图三个及以上。
4、按照作业封面模板打印封面。
5、按照以下需求描述来完成大作业。
通过对我院学生信息管理工作的调查与分析,主要存在学籍管理、成绩管理、奖惩管理、贫困生管理、学生党员干部管理、毕业管理等业务环节,对应的管理部门有教务处、学生招生就业处、教学系部等部门。
主要业务流程分析如下:1.学籍管理学籍管理是对取得学习资格的学生,从入学注册,成绩考核与记载,升、留(降)转系(专业)与转学、休学、停学、复学、退学,奖励与处分,毕业等方面,实施管理。
院的工作流程是新生首先到系上报到,教务处注册,填写学生的基本信息情况表,由系工作人员进行信息录入,当所有信息录入完毕并汇总在学生档案中,就完成了新生登记工如果学生正常完成学业,学籍管理则按正常流程进行,但是若有休学、退学、留级、保籍、转专业、转学、毕业等学籍变动情况则进行相应的登记和处理。
学籍管理工作将为学生今后的评优、处分、助学贷款等情况提供依据。
2.成绩管理每学期期末由教师将学生期末成绩单交到各系上,由系秘书以班级为单位将各门课成绩进行录入、核对,打印成绩单后交教务处统一处理。
此时学生可查询成绩,但是若学生的成绩出现错误而需要修改,则需要按特定的流程进行。
首先由任课教师将修改理交教务处,然后由教务处登记修改内容及时间后,方可修改成绩,成绩管理为学生奖惩管提供依据。
3.奖惩管理主要有奖学金评定、评优和违纪处分三类业务。
奖学金评定的流程是班主任将学生成绩进行汇总(各科成绩的平均分x70%+操行成绩x30%),再根据学生处制定的奖学定标准对每班学生评出奖学金等级,结果进行公示,无异议后送交学生处进行评审;评优程则是首先由参加评优的个人或者集体提交评优申请,由所属部门出具推荐意见,学院接到申请材料和推荐材料后根据评定条件、额度等择优提出初评名单,经过评定部门审核后以确认:学生违纪处分的基本流程则是各系将学生违纪情况上报学生处,学生处根据相关定进行处理,通知学生本人。
软件工程大作业简洁范本

软件工程大作业软件工程大作业一、引言二、目标软件工程大作业的目标是让学生们通过一个实际的项目,了解软件开发的整个过程,并培养其解决问题的能力和团队协作能力。
为了达到这个目标,大作业需要具备以下几个方面的要求:1. 实践性:大作业应该是一个实践性的项目,能够让学生们真正动手去做,并通过实际操作来巩固所学的知识。
2. 复杂性:大作业应该具备一定的复杂性,要求学生们能够面对实际的问题,并通过分析和解决来完成任务。
3. 团队协作:大作业可以以团队为单位来完成,这样可以培养学生们的团队协作能力和沟通能力。
4. 实际应用:大作业应该具备一定的实际应用价值,可以解决某个具体领域的问题。
三、需求分析在开始进行大作业的设计和实施之前,需要先进行需求分析。
需求分析是整个软件开发过程中的第一步,它的目的是明确用户对于软件的需求和期望。
在需求分析阶段,可以进行以下几个步骤:1. 问题定义:明确大作业所要解决的问题,并对问题进行描述和分析。
2. 用户调研:与潜在用户进行沟通,了解他们的需求和期望,进一步明确问题的范围和目标。
3. 功能需求:根据问题定义和用户需求,确定大作业所需要实现的功能,并进行详细的功能描述。
4. 非功能需求:除了功能需求外,还需考虑大作业的性能要求、安全性要求等非功能需求。
四、设计与实施在完成需求分析后,接下来是设计与实施阶段。
这个阶段可以分为以下几个步骤:1. 总体设计:在总体设计阶段,需要对大作业进行整体的设计,包括系统的架构设计、模块的划分和数据的设计等。
2. 详细设计:在详细设计阶段,需要对每个模块进行具体的设计,包括接口的定义、算法的选择和数据结构的设计等。
3. 编码实现:在编码实现阶段,可以根据设计文档进行编码,并通过测试来验证代码的正确性。
4. 系统测试:在系统测试阶段,可以对整个大作业进行综合性的测试,以确保系统的功能和性能达到要求。
五、软件工程大作业是一次实践性的项目,通过这个项目可以让学生们在实际的开发过程中学习和应用所学的软件工程知识。
APP设计与制作大作业

APP设计与制作大作业一、背景随着科技的发展,时代的进步,人们生活水平和收入的提高,越来越多的人选择去电影院看电影,为了身心放松,为了联络感情,为了潮流,为了追星或追剧,为了3D 既视感,亦或为了更好的享受生活。
而随着互联网的快速发展,网络平台已成了人们购买电影票的不二之选。
然而近年来,随着智能手机的普及,移动端开发受到了异常的关注。
从传统的安卓、IOS原生手机系统应用开发,转向了移动端Web开发或者是混合开发,在iOS上开发APP,需要通过Objective-C那样精细复杂的语言去开发,这对广大的开发者而言是个不小的难题。
值得庆幸的是,开发者们也可以通过开发Web APP来达到曲线救国的目的。
也就是说,可以通过HTML、CSS或者JavaScript来进行Web APP 的开发。
我小组根据猫眼电影webAPP 的设计理念,自行开发了一个相对简单的名为易购票的电影购票webAPP。
二、意义随着当代人的生活水平的不断提高,人们可以采取的娱乐方式变得越来越多样,去电影院看电影就是其中的一种很好的方式,但是传统的窗口售票工作效率低,人们要排很长的队伍到窗口去排队购票,所以开发一个提供用户能够线上购买打折电影票的平台,就具有了一定意义,于此同时提供给了年轻人网上购票的一个全新的渠道。
三、规划设计1、登陆与首页2、影视界面3、影院选择界面4、座位选择界面四、市场调查1、电影购票APP已成观众购票的主要渠道据统计,有20.86%的人是在影院直接购买电影票的,还有72.25%的受访者是通过在线选座APP完成的国庆档购票,这里包含了各互联网品牌的在线选座APP以及院线自有APP。
根据国家电影专资办的票房统计,2015的国庆档网票出票比已超过7成,这与华谊兄弟研究院的调研所得几乎完全一致——毫无疑问,电影购票APP已成为人们购买电影票的主力渠道。
2、淘宝对女性用户在淘宝电影上的迁移效果显著我们通过对男女受访者购票方式的数据分析发现,女性受访者使用淘宝电影APP 最多,比男性受访者高4%左右。
软件设计大作业

一需求分析此系统是一个类似于淘宝网的在线衣服销售系统,相当于淘宝网上的一个专门买衣服的网店,它具有用户注册,用户登录,修改密码,显示系统功能,查看订购历史以及订货。
1.1需求列表:(1)用户管理:用户管理的需求包括用户注册,用户登录以及修改密码。
用户注册是添加一个我们网上衣店的新用户;用户登录是用户想要进入系统时必须采取验证身份的步骤;修改密码是为了用户的安全性考虑,当密码存在不安全的因素时,适时修改密码。
(2)商品衣服的管理:商品管理包括订购衣服和查看订购衣服的历史。
订购衣服是当我们衣店的库存数量不足时必须采取的;查看订购衣服的历史有助于我们更好地了解衣服的订购情况。
(3)显示系统功能:此功能是用来让用户能很清楚地了解此系统所实现的各种功能。
1.2系统用例图:1.3用例分析及场景描述:用户注册用例:这部分主要是新用户进行注册的过程,首先用户进入到注册页面,填写注册信息并提交,如果无误的话系统会给予注册成功的提示,如果注册失败会提示注册失败信息。
用户登录用例:此功能模块针对的对象是本网站的会员既已经注册的会员,会员首先填写用户名和密码,然后点击登录按钮,如果网站数据库中存在此会员并且密码正确则提示登录成功提示,如果网站不存在此用户或密码不正确,系统会提示用户登录失败。
修改密码用例:此用例针对注册会员进行操作。
用户登录成功会可以进入网站主页面,如果用户想修改密码的话可以单击修改密码按钮,进行密码修改,用户输入新密码单击修改按钮即可完成密码修改。
显示系统功能用例:此功能针对注册会员,会员首先登录到网站,进入主页,主页会有相关操作的按钮,显示系统所提供给会员操作的功能,用户可以针对自己的需要选择系统提供的功能。
订货衣服用例:此功能针对注册登录会员,网站提供两种订购方案:单件订购和定制套装。
用户可以根据自己的需求来选择。
单件订购方案:用户选择是上衣还是裤子,并填写订购的数量,确认无误后单击订购按钮即可,如果订购成功,系统会提示订购成功,失败则会提示订购失败。
软件设计模式大作业样例

设计模式大作业课程名称:软件设计模式设计题目:公司经费申请院系:计算机科学与信息工程学院学生姓名:学号:专业班级:软件工程13-1指导教师:**2016年6月软件设计模式任务书目录一、系统目标 ...................................................................................... 错误!未定义书签。
1. 设计目的......................................................................................... 错误!未定义书签。
2. 需求描述......................................................................................... 错误!未定义书签。
二、系统模块选择 ............................................................................... 错误!未定义书签。
1. 需求分析......................................................................................... 错误!未定义书签。
2. 选用设计模式 (2)(1)模板方法模式 (2)(2)职责链模式......................................................................... 错误!未定义书签。
(3)观察者模式 (3)三、系统设计 (4)1. 系统功能模块设计 (4)四、系统实现 (5)1.模板方法模块及其实现类 (5)2.职责链模块及其实现类 (6)3.观察者模块及其实现类 (9)4.事件处理程序 (10)五、系统设计总结 (11)1. 实现的功能和优点 (11)2. 不足之处 (12)3. 完成心得 (12)六、参考文献 (12)参考文献 (12)一、系统目标1.设计目的通过本课程设计,加深对软件设计课程的理解,熟练掌握和巩固所学的各种设计模式,培养自我动手、查阅技术文献、资料、手册以及编写技术文献的能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一需求分析此系统是一个类似于淘宝网的在线衣服销售系统,相当于淘宝网上的一个专门买衣服的网店,它具有用户注册,用户登录,修改密码,显示系统功能,查看订购历史以及订货。
1.1需求列表:(1)用户管理:用户管理的需求包括用户注册,用户登录以及修改密码。
用户注册是添加一个我们网上衣店的新用户;用户登录是用户想要进入系统时必须采取验证身份的步骤;修改密码是为了用户的安全性考虑,当密码存在不安全的因素时,适时修改密码。
(2)商品衣服的管理:商品管理包括订购衣服和查看订购衣服的历史。
订购衣服是当我们衣店的库存数量不足时必须采取的;查看订购衣服的历史有助于我们更好地了解衣服的订购情况。
(3)显示系统功能:此功能是用来让用户能很清楚地了解此系统所实现的各种功能。
1.2系统用例图:1.3用例分析及场景描述:用户注册用例:这部分主要是新用户进行注册的过程,首先用户进入到注册页面,填写注册信息并提交,如果无误的话系统会给予注册成功的提示,如果注册失败会提示注册失败信息。
用户登录用例:此功能模块针对的对象是本网站的会员既已经注册的会员,会员首先填写用户名和密码,然后点击登录按钮,如果网站数据库中存在此会员并且密码正确则提示登录成功提示,如果网站不存在此用户或密码不正确,系统会提示用户登录失败。
修改密码用例:此用例针对注册会员进行操作。
用户登录成功会可以进入网站主页面,如果用户想修改密码的话可以单击修改密码按钮,进行密码修改,用户输入新密码单击修改按钮即可完成密码修改。
显示系统功能用例:此功能针对注册会员,会员首先登录到网站,进入主页,主页会有相关操作的按钮,显示系统所提供给会员操作的功能,用户可以针对自己的需要选择系统提供的功能。
订货衣服用例:此功能针对注册登录会员,网站提供两种订购方案:单件订购和定制套装。
用户可以根据自己的需求来选择。
单件订购方案:用户选择是上衣还是裤子,并填写订购的数量,确认无误后单击订购按钮即可,如果订购成功,系统会提示订购成功,失败则会提示订购失败。
定制套装方案:用户选择定制套装的档次(高、中、低),并填写订购的数量,确认无误后单击订购按钮即可,如果订购成功,系统会提示订购成功,失败则会提示订购失败。
显示订购历史用例:此功能针对注册会员,用户登录到系统后,主页显示系统功能中包括历史查看选项,用户可以单击进入历史交易记录页面,页面将显示用户所有的交易记录。
二设计模式2.1单件模式2.1.1单件模式的定义让类自身负责保存它的唯一实例,这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。
这就是单件模式。
2.1.2单件设计模式的意图单件模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2.1.3单件设计模式的结构单件模式结构图单件模式的结构进包括Singleton。
Singleton:被调用的单件对象。
在单件模式中,通常由Instance(或GetInstance)方法负责对象的创建,该方法应保证每个需要(单件)对象的客户端均能访问它。
2.1.4单件模式在本程序中的应用与理解在服装定制系统中,单件模式主要用于数据库部分。
该类的基本结构如下:public class Connection{private static Connection newConn;private static readonly object mylock=new object();private Connection() {}public static Connection getConn();public int Insert(string str);public int Insert(string Name, string Pwd);public int Change(string Pwd,int ID);}本程序中单件模式的Singleton类的类名为Connection。
通过getConn()方法获得该类的对象,保证了该类只有一个唯一实例。
Mylock是为了多线程安全所做的一个object对象。
通过Insert()方法可以向数据库插入客户基本信息以及客户订购的服装信息,通过change()方法,客户可以在登录该系统后修改自己的用户名和密码。
通过单件模式的使用,我们深刻地体会到了单件模式的作用和适用范围:(1)当类只能有一个实例并且用户可以从一个众所周知的访问点来访问它时。
(2)当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
2.2工厂模式2.2.1工厂模式的定义:工程模式是一种经常被用到的模式,根据工厂模式实现的类可以根据提供的类生成一组类中的某一类的实例,通常这一组类有一个公共的抽象父类,并且实现了相同的方法,但是这些方法对不同的数据进行了不同的操作。
首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。
然后需要定义一个工厂类,工厂类可以通过条件生成不同的子类实例。
当得到子类的实例后,开发人员可以调用基类中的方法而不用考虑返回的是哪个子类的实例。
2.2.2工厂模式的意图:工厂模式又称虚构造机(Virtual Constructor)。
它定义一个用于创建对象的接口,让子类决定实例化那一个类。
工程模式使一个类的实例化延迟到其子类。
2.2.3工厂模式的结构:(结构图)工厂模式的结构包括Factory、ConcreteFactory、Product和ConcreteProduct四部分,其中:Factory——“抽象的工厂”角色,声明工厂的方法,该方法返回一个Product类型的对象。
Factory也可以定义一个工厂方法的默认实现,它返回一个默认的ConcreteProduct对象。
可以调用工厂方法以创建一个Product对象。
ConcreteFactory——具体的工厂角色,创建具体产品的子工厂,重写工厂方法以返回一个ConcreteProduct实例。
Product——产品角色,定义工厂方法所创建的对象的接口。
ConcreteProduct——具体产品角色,实现Product接口。
在工厂模式中,产品的创建都是由ConcreteFactory来完成的,通常每个ConcreteFactory负责一种具体产品的创建,各个子工厂之间相互独立、职责明确、互不影响。
5.1 工厂模式结构图2.2.4工厂模式在本程序中的应用与理解:在本系统中,工厂模式用于的功能点为生产上衣和裤子,具体相关类的基本结构如下:public abstract class AbsClothes{public abstract bool add(int ID, int Num, int Price);}public interface IFactory{AbsClothes CreateClothes();}public class Up:AbsClothes{public override bool add(int ID, int Num, int Price);}public class Down : AbsClothes{public override bool add(int ID, int Num, int Price);}public class UpFac : IFactory{public AbsClothes CreateClothes();}public class DownFac:IFactory{public AbsClothes CreateClothes();}AbsClothes类是所有衣服的父类,Up和Down分别为上衣和裤子,是AbsClothes的子类。
IFactory类为所有具体工厂的抽象类,UpFac和DownFac为IFactory的子类,是生产上衣和裤子的具体工厂。
当每次系统想获得上衣或裤子的具体对象时,不是在主程序中直接用new来生成Up和Down的对象,而是通过调用UpFac和DownFac的CreateClothes方法来生成。
由于AbsClothes和IFactory作为抽象父类,当有新产品要添加的时候可以通过继承这两个父类来实现新产品的扩充,而原来的程序不用做出任何修改,这是符合面向对象程序设计的“开闭”原则的。
通过这次使用工厂模式,我们更加深刻的体会到了工厂模式的作用和适用范围:(1)当一个类不知道它所必须创建的对象的类信息的时候。
(2)当一个类希望由它的子类来指定它所创建的对象的时候。
(3)当类将创建的对象的职责委托给多个帮助子类中的一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。
2.3建造者模式2.3.1建造者模式的定义建造者模式用来创建复合对象,并把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象;另一方面,为了统一创建过程,又把对象创建的操作统一封装在名为Director所提供的方法里。
2.3.2建造者模式的意图将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
2.3.3建造者模式的结构建造者模式结构图从图中可以看出,建造者模式的结构包括四个部分:Builder, ConcreteBuilder, Director和Product。
其中:Builder---为创建一个Product对象的各个部分指定抽象接口。
ConcreteBuilder---实现Builder接口以构造和装配该产品的各个部件。
定义并明确他所创建的表示。
提供一个检索产品的接口。
Director---构造一个使用Builder接口的对象。
Product---表示被构造的复杂对象。
ConcreteBuilder创建该对象的内部表示并定义它的装配过程。
包含定义组成部件的类,包括将这些部件装配成最终的产品的接口。
2.3.4建造者模式在本程序中的应用与理解:建造者模式在本系统中所应用的模块为创建成套的衣服,包括上衣和裤子,具体相关类的结构如下所示:public class Director{public void Construct(Builder builder);}public abstract class Builder{public abstract void MadeShirt();public abstract void MadeTrousers();public abstract Taozhuang GetTao();}public class Taozhuang{private string shirt;public string Shirt{get { return shirt; }set { shirt = value; }}private string trousers;public string Trousers{get { return trousers; }set { trousers = value; }}private int price;public int Price{get { return price; }set { price = value; }}public bool add(int ID,int Num);}public class HighQ:Builder{private Taozhuang HQ = new Taozhuang();public override void MadeShirt();public override void MadeTrousers();public override Taozhuang GetTao();}public class MiddleQ : Builder{private Taozhuang MQ = new Taozhuang();public override void MadeShirt();public override void MadeTrousers();public override Taozhuang GetTao();}public class LowQ : Builder{private Taozhuang LQ = new Taozhuang();public override void MadeShirt();public override void MadeTrousers();public override Taozhuang GetTao();}软件设计大作业Builder类为建造者的抽象类,HighQ,MiddleQ,以及LowQ为Builder的子类,为具体的建造者,分别代表生产高档套装,中档套装以及低档套装。