23种设计模式之工厂模式
来源:互联网 发布:春晚 知乎 编辑:程序博客网 时间:2024/05/23 01:23
1、简单工厂模式(Simple Factory)
产品
abstract class Gun {
}
public class Mp5 extends Gun{
public Mp5(){
System.out.println("制造--->Mp5");
}
}
public class M16 extends Gun{
public M16(){
System.out.println("制造--->M16");
}
}
工厂
public class Factory {
public Gun createGun(String type){
if("M16".equals(type)){
return new M16();
}else if ("Mp5".equals(type)) {
return new Mp5();
}
return null;
}
}
客户
public class Customer {
public static void main(String[] args) {
Factory factory = new Factory();
factory.createGun("M16");
factory.createGun("Mp5");
}
}
2、工厂方法模式(Factory Method)
产品同上
工厂
public interface Factory {
Gun createGun();
}
public class FactoryM16 implements Factory{
@Override
public M16 createGun() {
return new M16();
}
}
public class FactoryMp5 implements Factory{
@Override
public Mp5 createGun() {
return new Mp5();
}
}
客户
public class Customer {
public static void main(String[] args) {
FactoryMp5 factoryMp5 = new FactoryMp5();
Mp5 mp5 = factoryMp5.createGun();
FactoryM16 factoryM16 = new FactoryM16();
M16 m16 = factoryM16.createGun();
}
}
3、抽象工厂模式(Abstract Factory)
产品
public interface ISightA {
public void show();
}
public interface ISightB {
public void show();
}
public class SightA implements ISightA{
@Override
public void show() {
System.out.println("这是A型瞄准镜");
}
}
public class SightB implements ISightB{
@Override
public void show() {
System.out.println("这是B型瞄准镜");
}
}
工厂
public interface IFactory {
public ISightA createSightA();
public ISightB createSightB();
}
public class Factory implements IFactory{
@Override
public ISightA createSightA() {
return new SightA();
}
@Override
public ISightB createSightB() {
return new SightB();
}
}
客户
public class Customer {
public static void main(String[] args) {
IFactory factory = new Factory();
factory.createSightA().show();
factory.createSightB().show();
}
}
- 23种设计模式之工厂模式
- 23种设计模式之-工厂模式
- 23种设计模式之工厂模式
- 23种设计模式之工厂方法
- 设计模式之三种工厂模式
- 设计模式之三种工厂模式
- 设计模式之三种工厂模式
- 26种设计模式之工厂模式
- 设计模式之---三种工厂模式
- 23种设计模式学习之东拼西凑-------抽象工厂模式
- 23种设计模式学习之东拼西凑-------工厂方法模式
- 精通23种设计模式之简单工厂模式
- 精通23种设计模式之工厂方法模式
- 非23种GOF设计模式之简单工厂模式
- 23种设计模式之工厂方法模式
- 23种设计模式之抽象工厂模式
- 23种设计模式之抽象工厂模式2
- c++23种设计模式之工厂模式
- java (数组操作)
- leetCode-Merge Sorted Array
- MyBatis + spring boot 搭建web项目
- 用if else 完成成绩的分布
- vue keep-alive生命周期
- 23种设计模式之工厂模式
- ROS学习笔记4 计算图源命名
- [DP+AC自动机] BZOJ1212: [HNOI2004]L语言
- 本文以Qt 5.9.1+VS2015编译环境为例介绍应用程序发布流程,也适用于Qt+mingw的情况。
- 利用openssl库实现BIO加密
- php 利用debug_backtrace方法跟踪代码调用
- 共同学习Java源代码-数据结构-HashMap(十一)
- 文章标题
- HDOJ1008 Elevator