• Java-马士兵设计模式学习笔记-工厂模式-简单工厂


    一、概述

    1.目标:要控制任意类型交通工具的生产模式

    2.目标有两层意思(1)任意类型 (2)生产模式,所以对应的,要这两个层面上抽象(Movable,VehicleFactory),利用接口,实现多态

    二、类结构

    1.Interface Movable.java

    2.Car.java

    3.Plane.java

    4.Interface VehicleFactory.java

    5.CarFactory.java

    6.PlaneFactory.java

    三、代码

    1.Movable.java

    public interface Movable {
    	void run();
    }
    

      

    2.Car.java

    public class Car implements Movable {
    
    	public Car() {
    	}
    
    	public void run() {
    		System.out.println("Car running...............");
    	}
    	
    }
    

      

    3.Plane.java

    public class Plane implements Movable {
    
    	@Override
    	public void run() {
    		System.out.println("飞机飞翔中。。。。");
    	}
    
    }
    

      

    4.VehicleFactory.java

    public interface VehicleFactory {
    	Movable create();
    }
    

      

    5.CarFactory.java

    public class CarFactory implements VehicleFactory {
    
    	private static Car car = new Car();
    	@Override
    	public Movable create() {
    		return car;
    	}
    
    }
    

      

    6.PlaneFactory.java

    public class PlaneFactory implements VehicleFactory {
    
    	private static Plane plane = new Plane();
    	@Override
    	public Movable create() {
    		return plane;
    	}
    
    }
    

      

    7.Test.java

    public class Test {
    	
    	@org.junit.Test
    	public void test() {
    		VehicleFactory factory = new CarFactory();
    		Movable m1 = factory.create();
    		m1.run();
    		
    		Movable m2 = factory.create();
    		System.out.println(m1 == m2);
    		System.out.println(m1.equals(m2));
    		
    		System.out.println("******************************");
    		
    		factory = new PlaneFactory();
    		m1 = factory.create();
    		m1.run();
    		
    		m2 = factory.create();
    		System.out.println(m1 == m2);
    		System.out.println(m1.equals(m2));
    	}
    }
    

      

    8.测试结果

  • 相关阅读:
    完全卸载Oracle方法、步骤
    使用oracle11g_instant_client来解决在不安装oracle客户端的情况下连接服务端
    Android系统中的6种模式
    现代汉语常用3500字
    debug1: Could not open authorized keys
    所选用户秘钥未在远程主机上注册
    directshow播放摄像头卡死问题
    linux设置静态IP
    gcc编译错误
    centos6.4编译gcc6.4
  • 原文地址:https://www.cnblogs.com/shamgod/p/4586349.html
Copyright © 2020-2023  润新知