第3章工厂方法模式.ppt
《第3章工厂方法模式.ppt》由会员分享,可在线阅读,更多相关《第3章工厂方法模式.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章工厂方法模式现在学习的是第1页,共26页简单工厂模式回顾简单工厂模式回顾 简单工厂简单工厂:根据传入的参数,决定创建哪一:根据传入的参数,决定创建哪一个产品类对象个产品类对象 所有具体产品对象的创建都放在一个类中,所有具体产品对象的创建都放在一个类中,一旦增加新的产品,一旦增加新的产品,工厂类工厂类都要被修改都要被修改 简单工厂模式违背单一职责和开放简单工厂模式违背单一职责和开放-关闭原则关闭原则现在学习的是第2页,共26页解决思路解决思路 变化点在变化点在“对象创建对象创建”根据根据“封装变化点封装变化点”,可以对简单工厂中的工厂,可以对简单工厂中的工厂类做了一个封装(类做了一个封装(
2、对象创建封装对象创建封装)使其满足单)使其满足单一职责和开一职责和开-闭原则闭原则现在学习的是第3页,共26页工厂方法模式工厂方法模式建立一个抽象工厂的基类,给每个产品建立一个工建立一个抽象工厂的基类,给每个产品建立一个工厂,该工厂继承抽象工厂,规定每个产品都有特定厂,该工厂继承抽象工厂,规定每个产品都有特定的工厂来创建的工厂来创建现在学习的是第4页,共26页工厂和产品是工厂和产品是平行平行的继承层次结构的继承层次结构工厂方法工厂方法-规模扩大,更专业规模扩大,更专业每一种产品都有专门的大师傅制作有面包每一种产品都有专门的大师傅制作有面包师,面条师,米饭师师,面条师,米饭师工厂方法模式工厂方法
3、模式现在学习的是第5页,共26页工厂方法类工厂方法类UML图图现在学习的是第6页,共26页 工厂方法类图工厂方法类图现在学习的是第7页,共26页抽象工厂接口抽象工厂接口(Creator)工厂方法模式的核心,它与应用程序无关。是工厂方法模式的核心,它与应用程序无关。是具体工厂必须继承的父类或者必须实现的接口具体工厂必须继承的父类或者必须实现的接口 包含逻辑业务的代码,由应用程序调用以创建对包含逻辑业务的代码,由应用程序调用以创建对应的具体产品对象应的具体产品对象 具体工厂类具体工厂类(Conrete Creator)现在学习的是第8页,共26页抽象产品接口抽象产品接口(Product)具体产品必
4、须继承的父类或必须实现的接口具体产品必须继承的父类或必须实现的接口所创建的对象就是此角色的实例所创建的对象就是此角色的实例具体产品类具体产品类(Concrete Product)现在学习的是第9页,共26页练习练习:分析图中的关系分析图中的关系现在学习的是第10页,共26页抽象工厂角色抽象工厂角色:Creator具体工厂角色具体工厂角色:BulbCreator与与TubeCreator 具体产品角色具体产品角色:BulbLight与与TubeLight 抽象产品角色抽象产品角色:Light 现在学习的是第11页,共26页示示 例例 1现在学习的是第12页,共26页public interfac
5、e Fruit void plant();/种植种植 void grow();/生长生长 void harvest();/收获收获水果产品接口水果产品接口Fruit.java现在学习的是第13页,共26页public class Apple implements Fruit private int treeAge;public void plant()System.out.println(Apple has been planted.);public void grow()System.out.println(Apple is growing.);public void harvest()Sy
6、stem.out.println(Apple has been harvested.);public int getTreeAge()return treeAge;public void setTreeAge(int treeAge)this.treeAge=treeAge;具体产品苹果具体产品苹果Apple.java现在学习的是第14页,共26页public class Grape implements Fruit private boolean seedless;/是否有籽是否有籽 public void plant()System.out.println(Grape has been p
7、lanted.);public void grow()System.out.println(Grape is growing.);public void harvest()System.out.println(Grape has been harvested.);public boolean getSeedless()return seedless;public void setSeedless(boolean seedless)this.seedless=seedless;public static void log(String msg)System.out.println(msg);具体
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工厂 方法 模式
限制150内