



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一. 程序设计目标我们用三层架构做了一个网上购物系统,主要是实现网上购物基本功能与流程,并通过这次实践设计更进一步熟练掌握三层架构的使用以及它的具体含义,加强编程结构化能力。操作系统Windows XP应用软件Visual Studio+SQL Server 2000设备硬件外部设备需奔腾133以上的PC机,内存需16兆以上开发语言C#二. 程序设计介绍1.程序结构我们为程序建立了一个名为“网上购物”的工程,主要有 个类 三.程序设计步骤模式名称:问题:解决方法:四.简单工厂模式的定义简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例。五.简单工厂模式的结构简单工厂模式涉及到工厂角色、抽象产品角色以及具体产品角色等三个角色:(1)工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体C# 类实现。(2)抽象产品(Product)角色:担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个C# 接口或者C# 抽象类实现。(3)具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体C#类实现。 工厂类的示意性源代码如下所示。可以看出,这个工厂方法创建了一个新的具体产品的实例并返还给调用者。 1:Creator 类的源代码public class Creator/静态工厂方法public static Product factory()return new ConcreteProduct();抽象产品角色的主要目的是给所有的具体产品类提供一个共同的类型,在最简单的情况下,可以简化为一个标识接口。所谓标识接口,就是没有声明任何方法的空接口。 2:抽象角色Product 接口的源代码public interface Product具体产品类的示意性源代码如下。3:具体产品角色ConcreteProduct 类的源代码public class ConcreteProduct implements Productpublic ConcreteProduct() 虽然在这个简单的示意性实现里面只给出了一个具体产品类,但是在实际应用中一般都会遇到多个具体产品类的情况。六模式的优点和缺点1 模式的优点模式的核心是工厂类。这个类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例。而客户端则可以免除直接创建产品对象的责任,而仅仅负责“消费”产品。简单工厂模式通过这种做法实现了对责任的分割。2 模式的缺点正如同在本章前面所讨论的,当产品类有复杂的多层次等级结构时,工厂类只有它自己。以不变应万变,就是模式的缺点。这个工厂类集中了所有的产品创建逻辑,形成一个无所不知的全能类,有人把这种类叫做上帝类(God Class)。如果这个全能类代表的是农场的一个具体园丁的话,那么这个园丁就需要对所有的产品负责,成了农场的关键人物,他什么时候不能正常工作了,整个农场都要受到影响。将这么多的逻辑集中放在一个类里面的另外一个缺点是,当产品类有不同的接口种类时,工厂类需要判断在什么时候创建某种产品。这种对时机的判断和对哪一种具体产品的判断逻辑混合在一起,使得系统在将来进行功能扩展时较为困难。这一缺点在工厂方法模式中得到克服。由于简单工厂模式使用静态方法作为工厂方法,而静态方法无法由子类继承,因此,工厂角色无法形成基于继承的等级结构。这一缺点会在工厂方法模式中得到克服。七个人体会 设计模式实际上是良好的OO思想的一种提炼。每一种设计模式后面都体现了一种良好的OO思路,这些思路对于解决软件中常见的“change”问题有很大的适应性,而每种模式又有自己独特的解决思路,带有一定的通用性。而组合各种模式又可以解决许多常见问题。不可否认的是,还存在一些未经总结的设计模式。实际上,你自己也可以总结一些模式出来。无论怎样,设计模式仍然是面向对象,它不是新东西,也没有必要言必称设计模式似乎不懂设计模式就落伍了,但给OO的开发者提供一个言简意赅的沟通桥梁。设计模式告诉了我们什么是好的OO思想,思考如何更好的应用OO的思想虽然还是那几个耳熟能详的术语:封装、继承、组合、多态。设计模式首先是对传统的OO使用方法的矫正:如针对接口编程而不是实现;优先使用组合,而不是继承。其次是在原来理解上的突破:封装是对变化而言的,不仅仅是属性和方法的集合。类不仅是现实事物的抽象,同时它还具有责任。更有创新:依赖式注入。模式不是万能的,也并不总能完美地解决问题,因此每种模式都包括了影响的信息。在应用模式之前,我们必须先分析问题的情境,并评估模式的影响,再决定是否采用模式,采用哪一种模式。也就是说,理解、分析模式,和实现模式一样重要八建议 (1)使用更加通俗易懂的语言解释设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉字演变过程
- 贵州省部分学校2025届高三上学期9月月考历史试卷(含答案)
- 广东省广州市天河区2024-2025学年下学期期末考试七年级道德与法治试卷
- 【资源】大学体育在线视频系列课程(山东联盟)知到智慧树答案
- 幸福心得体会15篇
- 网络直播行业市场调研报告
- 2024年秋新北师大版数学一年级上册课件 总复习 第3课时 统计与概率
- 2024年秋新北师大版数学一年级上册教学课件 第四单元 10以内数加与减 第5课时 小鸡吃食
- 永动机课件教学课件
- 智算中心硬件设备选型方案
- 福建省福州市联盟校2023-2024学年高一下学期期末考试英语试题(解析版)
- 2024-2025学年重庆市万州区八年级(下)期末语文试卷
- 2025年乒乓球二级裁判考试题及答案
- 2025年江苏省苏豪控股集团有限公司校园招聘笔试备考试题及答案详解(必刷)
- (完整)中小学“学宪法、讲宪法”知识竞赛题库及答案
- 2025年行政执法人员执法证考试必考多选题库及答案(共300题)
- 《工程勘察设计收费标准》(2002年修订本)
- 2024年自投光伏安装合同范本
- DB11T 1581-2018 生产经营单位应急能力评估规范
- 汶川地震波时程记录(卧龙3向)
- 吴迪完胜股市学习笔记
评论
0/150
提交评论