是具体工厂必须继承的父类或者必须实现的接口 包含逻辑业务的代码,由应用程序调用以创建对应的具体产品对象 具体工厂类 Conrete Creator 抽象产品接口 Product 具体产品必须继承的父类或必须实现的接口 所创建的对象就是此角色的实例 具体产品类 Concrete Product 练习: 分析图中的关系 抽象工厂角色:Creator 具体工厂角色:BulbCreator与TubeCreator 具体产品角色: BulbLight与TubeLight 抽象产品角色:Light 示 例 1 public intece Fruit void plant ;//种植 void grow ;//生长 void harvest ;//收获 水果产品接口Fruit.java 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 System.out.println "Apple has been harvested." ; public int getTreeAge return treeAge; public void setTreeAge int treeAge this.treeAge treeAge; 具体产品苹果Apple.java public class Grape implements Fruit private boolean seedless;?? //是否有籽 public void plant System.out.println " Grape has been planted." ; 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 ; 具体产品葡萄Grape.java public class Strawberry implements Fruit public void plant System.out.println " Strawberry has been planted." ; public void grow System.out.println " Strawberry is growing..." ; public void harvest System.out.println " Strawberry has been harvested." ; public static void log String msg System.out.println msg ; 具体产品草莓Strawberry.java public intece FruitGardener /** * 工厂方法 * * @return 水果 */ public Fruit factory ; 水果工厂接口FruitGardener.java public class AppleGardener implements FruitGardener //工厂方法 public Fruit factory Fruit f new Apple ; System.out.println “水果工厂 (AppletGardener)成功创建一个水果:苹果!" ; return f; 苹果工厂AppleGardener.java public class GrapeGardener implements FruitGardener //工厂方法 public Fruit factory Fruit f new Grape ; System.out.println “水果工厂 (GrapeGardener)成功创建一个水果:葡萄!" ; return f; 葡萄工厂GrapeGardener.java public class StrawberryGardener implements FruitGardener public Fruit factory Fruit f new Strawberry ; System.out.println “水果工厂 (StrawberryGardener)成功创建一个水果:草莓!" ; return f; 草莓工厂StrawberryGardener.java public class TestApp private FruitGardener f1, f2, f3; private Fruit p1, p2, p3; private void test //实例化水果工厂 f1 new AppleGardener ; f2 new GrapeGardener ; f3 new StrawberryGardener ; //从水果工厂生产水果 p1 f1.factory ; p2 f2.factory ; p3 f3.factory ; public static void main String args[] TestApp test new TestApp ; test.test ; 测试类(客户端) TestApp.java 示例2: “快餐店”问题 示例3 移动电信运营商,具有不同的话费套餐形式,如动感地带,神州行,等。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27237-4.html
所以说也要小心一点
10万放余额宝里一年在3000左右利息