简单工厂模式Ok.pptVIP

  • 0
  • 0
  • 约4.01千字
  • 约 18页
  • 2017-12-23 发布于上海
  • 举报
简单工厂模式Ok

Java创建对象的方法 所有面向对象的语言都有固定的创立对象的办法。java的办法就是使用new操作符。比如 StringBuffer s = new StringBuffer(1000); 使用new操作符的短处是事先必须明确知道要实例化的类是什么 实例化的责任往往与使用实例的责任不加区分。 创立性模式 面向对象的设计的目的之一,就是把责任进行划分,以分派给不同的对象。 创立性模式把对象的创立过程封装起来,使得创立实例的责任与使用实例的责任分割开 由专门的模块分管实例的创立,而系统在宏观上不再依赖于对象创立过程的细节 创立性模式 创立性模式将类实例化,不必事先知道每次是要实例化哪一个类 把实例化的责任与使用实例的责任分割开来 工厂模式 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。 工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 简单工厂(Simple Factory)模式 比如说,你有一个描述你的后花园的系统,在你的后花园里有各种的花,但还没有水果。你现在要往你的系统里引进一些新的类,用来描述下列的水果:   葡萄 Grapes   草莓 Strawberry   萍果 Apple 简单工厂(Simple Factory)模式 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 源代码 源代码 源代码 源代码 简单工厂(Simple Factory)模式 作为小花果园的主人兼园丁,也是系统的一部分,自然要由一个合适的类来代表,这个类就是 FruitGardener类。 源代码 园丁的工作(简单工厂) FruitGardener类会根据要求,创立出不同的水果类,比如萍果Apple,葡萄Grape或草莓Strawberry的实例。 这里的园丁就如同一个可以创建水果产品的工厂一样 如果接到不合法的要求,FruitGardener类会给出例外BadFruitException。 ????????????????????????????????????????????????????????????????????? 源代码 丰收的果园(客户端) 在使用时,只须呼叫FruitGardener的factory()方法即可 try {  FruitGardener gardener = new FruitGardener();  FruitIF grape = gardener.factory(grape);  FruitIF apple = gardener.factory(apple);  FruitIF strawberry = gardener.factory(strawberry);  ...  }  catch(BadFruitException e) {   ... } 小结:简单工厂模式的定义 总而言之,简单工厂模式就是由一个工厂类根据参数来决定创立出那一种产品类的实例。 小结:简单工厂模式的定义 小结:简单工厂模式框架的源代码 public class Creator { public Product factory() {  return new ConcreteProduct(); } } public interface Product { } public class ConcreteProduct implements Product { public ConcreteProduct(){} } 源代码:FruitIF接口 接口FruitIF的源代码。这个接口确定了水果类必备的方法: 种植plant(),生长grow(), 以及收获harvest()。 package com.javapatterns.simplefactory; public interface FruitIF {  void grow();  void harvest();  void plant();  String color = null;  String name = null; } 返回 源代码:Apple类 萍果是多年生木本植物,因此具备树龄treeAg

文档评论(0)

1亿VIP精品文档

相关文档