【设计模式】-简单工厂模式-SampleFactory
来源:互联网 发布:翻译软件app 编辑:程序博客网 时间:2024/06/06 07:04
简介
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。
角色
- 抽象产品
- 多个具体产品
- 工厂
使用示例
抽象产品–汽车
// 抽象产品interface ICar { void printBrand();}
具体产品–奔驰
// 具体产品-奔驰class Benz implements ICar { @Override public void printBrand() { System.out.println("奔驰"); }}
具体产品–奥迪
// 具体产品-奥迪class Audi implements ICar { @Override public void printBrand() { System.out.println("奥迪"); }}
工厂-汽车生产厂
// 工厂class CarFactory { public static ICar produceCar(String brand) { if (brand.equals("Benz")) { return new Benz(); } else if (brand.equals("Audi")) { return new Audi(); } else { System.out.println("无法生产该品牌汽车"); return null; } }}
测试代码
package org.iti.dm.samplefactory;public class SampleFactoryMode { public static void main(String[] args) { ICar car = CarFactory.produceCar("Benz"); car.printBrand(); car = CarFactory.produceCar("Audi"); car.printBrand(); car = CarFactory.produceCar("tailyou"); }}
结果如下:
Demo完整代码
package org.iti.dm.samplefactory;public class SampleFactoryMode { public static void main(String[] args) { ICar car = CarFactory.produceCar("Benz"); car.printBrand(); car = CarFactory.produceCar("Audi"); car.printBrand(); car = CarFactory.produceCar("tailyou"); }}// 抽象产品interface ICar { void printBrand();}// 具体产品-奔驰class Benz implements ICar { @Override public void printBrand() { System.out.println("奔驰"); }}// 具体产品-奥迪class Audi implements ICar { @Override public void printBrand() { System.out.println("奥迪"); }}// 工厂class CarFactory { public static ICar produceCar(String brand) { if (brand.equals("Benz")) { return new Benz(); } else if (brand.equals("Audi")) { return new Audi(); } else { System.out.println("无法生产该品牌汽车"); return null; } }}
0 0
- 【设计模式】-简单工厂模式-SampleFactory
- 简单工厂设计模式
- 设计模式-----简单工厂
- 简单工厂设计模式
- 设计模式:简单工厂
- 设计模式 - 简单工厂
- 设计模式 简单工厂
- 【设计模式】【简单工厂】
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式--简单工厂
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式------------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- 设计模式---------简单工厂
- 设计模式--简单工厂
- Struts2 入门(笔记三):Ognl表达式语言与struts标签
- mysql解压版安装与使用-2015-09-17
- poj3278Catch That Cow bfs
- 理解回调函数
- 为什么这些脑残应用能活而那些严肃牛逼的应用死了?
- 【设计模式】-简单工厂模式-SampleFactory
- 随笔
- javascript中的数据比较逻辑等
- 自定义View画出手机通讯录中右边字母,并设置TouchEvent/观察者模式
- Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstance
- 黑马程序员-----------C语言基础-----------C语言实战(C语言版通讯录)
- 海格面试题总结
- UVa 10340 All in All
- NOIP2014 Day2 T1