java - 接口回调讲解2 - 将接口视为工厂

来源:互联网 发布:linux批量安装 编辑:程序博客网 时间:2024/06/06 01:18

1.工厂模式的接口回调结构图

2.苹果和香蕉的产品类

//苹果package com.sf.entity;    import com.sf.jk.Fruit;    public class Apple implements Fruit {        public Apple(){          System.out.println("生产水果");      }      public void eat() {          System.out.println("苹果可以吃");      }        public void plant() {          // TODO Auto-generated method stub          System.out.println("苹果可以种");      }        public void sell() {          // TODO Auto-generated method stub          System.out.println("苹果可以卖");      }    }  //香蕉    package com.sf.entity;            import com.sf.jk.Fruit;            public class Banana implements Fruit{                public Banana(){              System.out.println("生产香蕉");          }          public void eat() {              // TODO Auto-generated method stub              System.out.println("香蕉可以吃");          }                public void plant() {              // TODO Auto-generated method stub              System.out.println("香蕉可以种");          }                public void sell() {              // TODO Auto-generated method stub              System.out.println("香蕉可以卖");          }                }  

3.抽象接口

3.1产品的抽象接口

    package com.sf.jk;            public interface Fruit {          public void eat();          public void plant();          public void sell();      }  

3.2工厂的抽象接口

    package com.sf.jk;            public interface CreateFactory {          public Fruit createFruit();      }  

4.工厂的具体实现方法
package com.sf.hf;    import com.sf.entity.Apple;  import com.sf.jk.CreateFactory;  import com.sf.jk.Fruit;    public class CreateApple implements CreateFactory{        public Fruit createFruit() {          // TODO Auto-generated method stub          return new Apple();      }  }     package com.sf.hf;            import com.sf.entity.Banana;      import com.sf.jk.CreateFactory;      import com.sf.jk.Fruit;            public class CreateBanana implements CreateFactory{                public Fruit createFruit() {              // TODO Auto-generated method stub              return new Banana();          }      }  
5.客户端调用
import com.sf.hf.CreateApple;  import com.sf.hf.CreateBanana;  import com.sf.hf.FruitFactory;  import com.sf.jk.CreateFactory;  import com.sf.jk.Fruit;      public class Test {        private static CreateFactory cf1,cf2;      private static Fruit fruit;            public static void main(String[] args) {          System.out.println("---------创建苹果---------");          cf1 = new CreateApple();          fruit = cf1.createFruit();          fruit.eat();          fruit.plant();          System.out.println("---------创建香蕉---------");          cf2 = new CreateBanana();          fruit = cf2.createFruit();          fruit.eat();          fruit.plant();      }    } 

6.最后的运行结果

    ---------创建苹果---------      生产水果      苹果可以吃      苹果可以种      ---------创建香蕉---------      生产香蕉      香蕉可以吃      香蕉可以种  



0 0
原创粉丝点击