首页 技术 正文
技术 2022年11月8日
0 收藏 667 点赞 1,389 浏览 1274 个字

一、概述

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

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.测试结果

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,999
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,357
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,140
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848