简单工厂模式

来源:互联网 发布:国家去库存政策 知乎 编辑:程序博客网 时间:2024/04/28 14:50
  1. Factory

    • 顶层接口
package com.wayne.factory;import com.wayne.pojo.IMoveable;public interface IVichelFactory {    IMoveable create();}
  • 两个实现类

CarFactory.java

package com.wayne.factory;import com.wayne.pojo.Car;import com.wayne.pojo.IMoveable;public class CarFactory implements IVichelFactory {    @Override    public IMoveable create() {        return new Car();    }}

PlaneFactory.java

package com.wayne.factory;import com.wayne.pojo.IMoveable;import com.wayne.pojo.Plane;public class PlaneFactory implements IVichelFactory {    @Override    public IMoveable create() {        return new Plane();    }}
  1. pojo

    • 顶层接口
package com.wayne.pojo;public interface IMoveable {    void run();}
  • 两个实现类

Car.java

package com.wayne.pojo;public class Car implements IMoveable {    @Override    public void run() {        System.out.println("Car来了。。。。。。");    }}

Plane.java

package com.wayne.pojo;public class Plane implements IMoveable {    @Override    public void run() {        System.out.println("Plane飞来了");    }}
  1. test
package com.wayne.test;import com.wayne.factory.IVichelFactory;import com.wayne.factory.PlaneFactory;import com.wayne.pojo.IMoveable;public class MyTest {    public static void main(String[] args) {        IVichelFactory factory = new PlaneFactory();        //IVichelFactory factory = new CarFactory();        IMoveable m = factory.create();        m.run();    }}

总结:
一个模块对扩展应是开放的,对修改应是关闭的。

0 0
原创粉丝点击