简单工厂模式
实现:
- mouse基础类
/**
* 鼠标抽象类
*
* @author liuyuan
* @version BaseMouse.java, v 0.1 2020-04-12 11:21
*/
public abstract class BaseMouse {
/**
* 生产鼠标的抽象方法
*/
public abstract void sayHi();
}
/**
* 戴尔实现类
*
* @author liuyuan
* @version DellMouse.java, v 0.1 2020-04-12 11:23
*/
public class DellMouse extends BaseMouse {
@Override
public void sayHi() {
System.out.println("dell 生产鼠标~");
}
}
/**
* 惠普实现类
*
* @author liuyuan
* @version HpMouse.java, v 0.1 2020-04-12 11:23
*/
public class HpMouse extends BaseMouse {
@Override
public void sayHi() {
System.out.println("HP 生产鼠标~");
}
}
- factory工厂类
/**
* fshows.com
* Copyright (C) 2013-2020 All Rights Reserved.
*/
package com.example.designmode.factory.simplefactory.factory;
import com.example.designmode.factory.simplefactory.mouse.BaseMouse;
import com.example.designmode.factory.simplefactory.mouse.DellMouse;
import com.example.designmode.factory.simplefactory.mouse.HpMouse;
/**
* 鼠标工厂类
*
* @author liuyuan
* @version BasePcFactory.java, v 0.1 2020-04-12 11:25
*/
public class MouseFactory {
public static BaseMouse greatMouse(int i) {
switch (i) {
case 0:
return new DellMouse();
case 1:
return new HpMouse();
default:
System.out.println("工厂不存在!");
return null;
}
}
}
- 测试
/**
* fshows.com
* Copyright (C) 2013-2020 All Rights Reserved.
*/
package com.example.designmode.factory.simplefactory;
import com.example.designmode.factory.simplefactory.factory.MouseFactory;
/**
* 简单工厂模式
*
* @author liuyuan
* @version Test.java, v 0.1 2020-04-12 11:30
*/
public class Test {
public static void main(String[] args) {
System.out.println("~~~简单工厂模式~~~");
// dell 生产鼠标~
MouseFactory.greatMouse(0).sayHi();
// HP 生产鼠标~
MouseFactory.greatMouse(1).sayHi();
// 工厂不存在!
MouseFactory.greatMouse(2).sayHi();
}
}