设计模式题库以及答案_第1页
设计模式题库以及答案_第2页
设计模式题库以及答案_第3页
设计模式题库以及答案_第4页
设计模式题库以及答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、选择题(20分,20个)二、简答题(30分,6个)1、框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。2、架构是一个软件系统从整体到部分的最高层次的划分。 架构包括架构元件(Architecture Component)、联结器(Connector)、任务流(Task-flow)3、架构的目标:可靠性、安全性、可拓展性、可定制化、可维护性、客户体验、市场时机4、架构分成三种:逻辑架构、物理架构、系统架构5、架构的两要素:元件划分、设计决定6、设计模式是一系列在实践中总结出来的可复用的面向对象的软件设计方法7、划分三种不同层次的模式:架构模式(Archi

2、tectural Pattern)、设计模式(Design Pattern)、成例(Idiom)。成例有时称为代码模式(Coding Pattern)。8、创建型设计模式,如工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式9、结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式10、架构模式描述软件系统里的基本的结构组织或纲

3、要11、常见的架构模式:分层模式、黑板模式、中介模式、分散过程模式、微核模式12、框架与架构之间的关系 :架构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体。更偏重于技术涉嫌。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现13、框架与设计模式之间的关系 :设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的

4、思想可以在框架设计中进行应用14、框架和设计模式存在着显著的区别:应用领域(前者单一解决方案可在不同框架上用)、内容(模式单纯设计、框架式设计与代码的混合体)15、设计模式比框架更容易移植16、类之间的关系:关联(自身关联、单向、双向实线箭头)、聚合(空心箭头)/组合<包容>(实心箭头)、依赖(虚线箭头)、泛华(继承,实线三角形)、实现(虚线三角形)17、基本元素符:类、包、接口18、开闭(OCP)原则:一个软件实体应当对扩展开放,对修改关闭。19、OCP原则优点:a、通过扩展已有软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件有一定的适应性和灵活性。b、已有软件

5、模块,特别是最重要的抽象层模块不能再修改,这使变化中的软件系统有一定的稳定性和延续性。20、里氏代换原则(LSP):子类型必须能够替换它们的基类型21、依赖倒置(DIP)原则是:要依赖于抽象,不要依赖于具体。22、工厂类优点:缺点:含有必要的判断逻辑,实现了对责任的分割;一旦不能正常工作,整个系统都要受到影响23、工厂方法模式是类的创建模式24、抽象工厂(具体工厂)角色:是工厂方法模式的核心25、工厂方法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。26、代码表示聚合关系:public class EmployeePrivate EmpType et;Public EmpTy

6、pe getEmpType()Employee到Emptype。三、综合体(50分,5个编程题) 1、公共数据库:sql语句、参数、存储过程public static string connectionString = System.Configuration.ConfigurationSettings.AppSettings"conStr".ToString();sql语句:public static int ExecuteSql(string SQLString) using (OracleConnection connection = new OracleConnec

7、tion(connectionString) using (OracleCommand cmd = new OracleCommand(SQLString, connection) try connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; catch (System.Data.SqlClient.SqlException E) connection.Close(); throw new Exception(E.Message); 参数:public static int ExecuteSql(string SQL

8、String, params OracleParameter cmdParms) using (OracleConnection connection = new OracleConnection(connectionString) using (OracleCommand cmd = new OracleCommand() try PrepareCommand(cmd, connection, null, SQLString, cmdParms); int rows = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return rows; t

9、.SqlException E) throw new Exception(E.Message); 存储过程:public static int ExecuteSql(string SQLString, string content) using (OracleConnection connection = new OracleConnection(connectionString) OracleCommand cmd = new OracleCommand(SQLString, connection); System.Data.SqlClient.SqlParameter myParamete

10、r = new System.Data.SqlClient.SqlParameter("content", SqlDbType.NText); myParameter.Value = content; cmd.Parameters.Add(myParameter); try connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; catch (System.Data.SqlClient.SqlException E) throw new Exception(E.Message); finally c

11、md.Dispose(); connection.Close(); 2、实体层public class 部门Model string depart_id; public 部门Model(); public 部门Model(string id, string name, string leader, string disc) this.depart_id = id; public string 部门编号 get return depart_id; set depart_id = value; 3、数据访问层:接口、实现类接口:public interface ICommon bool Inser

12、t(object Model); object Select(string id); List<object> SelectList(); bool Update(object Model); bool Delete(object Model); public interface I部门 : ICommon string get部门ID(); List<员工Model> GetLeader(部门Model m1); 实现类:public class 部门:I部门 public bool Insert(object m) 部门Model m1 = m as 部门Model

13、; OracleParameter paras = new OracleParameter("p_Id",OracleType.Char,13), new OracleParameter("P_name",OracleType.NVarChar), new OracleParameter("P_leader",OracleType.Char,13), new OracleParameter("p_disc",OracleType.NVarChar) ; paras0.Value = m1.部门编号; paras1.

14、Value = m1.部门名称; paras2.Value = m1.部门领导; paras3.Value = m1.部门描述; if (OracleHelper.RunProcedureTotal("TB_DEPARTMENT_INSERT", paras)=1) return true; else return false; 4、工厂模式工厂:public class ClassCreate public static T Create<T>(string classname) string path = System.Configuration.Confi

15、gurationManager.AppSettings"DAL".ToString(); string className = path + "." + classname; return (T)Assembly.Load(path).CreateInstance(className); 配置文件(app.config):<?xml version="1.0"?><configuration> <appSettings> <add key="conStr" value="Data Source=ksxt;User ID=rjsj;Unicode=True;password=123"/> <add key="DAL" value="SQLDAL"/> </appSettings></configuration> 5、业务逻辑层public class B部门 private static

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论