1、使用泛型集合维护有继承关系的电影票对象使用泛型集合维护有继承关系的电影票对象使用使用XML和和TreeView显示影院放映列表显示影院放映列表动态加载座位,点击座位可购买不同类型的电影票动态加载座位,点击座位可购买不同类型的电影票使用多态实现不同类型电影票的价格计算使用多态实现不同类型电影票的价格计算使用简单工厂模式创建不同类型的电影票使用简单工厂模式创建不同类型的电影票使用序列化和反序列化实现销售情况的保存和读取使用序列化和反序列化实现销售情况的保存和读取 2什么是设计模式什么是设计模式v模式就是得到很好研究的范例模式就是得到很好研究的范例走为上走为上 围魏救赵围魏救赵 声东击西声东击西 设
2、计模式是软件开发过程中经验的积累设计模式是软件开发过程中经验的积累特定问题的经过实践检验的特定解决方法特定问题的经过实践检验的特定解决方法3简单工厂模式简单工厂模式v简单工厂模式的原理简单工厂模式的原理父类产品父类产品 子类产品子类产品A 子类产品子类产品B 子类产品子类产品C 工厂工厂 客户客户 4为什么需要抽象工厂设计模式为什么需要抽象工厂设计模式父类产品父类产品子类产品子类产品A 子类产品子类产品B 子类产品子类产品C 工厂工厂客户客户:简单工厂设计模式原理结构:简单工厂设计模式原理结构 什么是抽象工厂设计模式什么是抽象工厂设计模式5什么是抽象工厂设计模式什么是抽象工厂设计模式抽象工厂抽
3、象工厂 实体工厂实体工厂2实体工厂实体工厂1抽象产品抽象产品A抽象产品抽象产品B实体产品实体产品B1实体产品实体产品B2实体产品实体产品A1实体产品实体产品A2客户客户:抽象工厂设计模式原理结构:抽象工厂设计模式原理结构 6什么是抽象工厂设计模式什么是抽象工厂设计模式1、提供一系列相互依赖对象的创建工作、提供一系列相互依赖对象的创建工作2、封装对象常规的创建方法(、封装对象常规的创建方法(new)3、提供统一调用数据访问方法的方式、提供统一调用数据访问方法的方式4、避免调用数据访问方法和具体对象创建工作的紧耦合、避免调用数据访问方法和具体对象创建工作的紧耦合7什么是抽象工厂设计模型什么是抽象工
4、厂设计模型v提供一个创建一系列相关或相互依赖对象的接口,无提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类需指定它们具体的类 客户请求客户请求 抽象工厂抽象工厂抽象产品抽象产品如何用抽象工厂设计模式构建我们的数据访问层?如何用抽象工厂设计模式构建我们的数据访问层?8如何使用抽象工厂设计模式如何使用抽象工厂设计模式1、用、用抽象工厂抽象工厂生产抽象产品生产抽象产品2、用、用实体工厂实体工厂生产生产实体产品实体产品3、用、用抽象产品抽象产品提供提供实体产品实体产品访问接口访问接口4、用、用实体产品实体产品实现自己的功能实现自己的功能:抽象工厂设计模式中各个对象的主要功能、职责:抽象
5、工厂设计模式中各个对象的主要功能、职责9难点分析难点分析-2v使用简单工厂创建不同类型的电影票使用简单工厂创建不同类型的电影票public static Ticket CreateTicket(ScheduleItem scheduleItem,Seat seat,int discount,string customerName,string type)Ticket newTicket=null;switch(type)case student:newTicket=new StudentTicket(scheduleItem,seat,discount);break;case free:newTicket=new FreeTicket(scheduleItem,seat,customerName);case:newTicket=new Ticket(scheduleItem,seat);return newTicket;返回父类类型返回父类类型 创建不同的子类产品创建不同的子类产品 10练习阶段练习阶段v使用简单工厂创建不同类型的电影票使用简单工厂创建不同类型的电影票11谢谢大家!谢谢大家!12