简单工厂模式也是一个应用很广泛的模式,但是可扩展性没有工厂方法模式高。
简单工厂模式设计到工厂角色,抽象产品角色以及具体产品角色等
工厂类:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑,工厂类在客户端的直接调用下创建产品对象,他往往由一个具体java类实现。
抽象产品:担任这个角色的类是由工厂方法模式所创建的对象的父类,或他们共同拥有的接口。通常由一个接口或抽象类实现。
具体产品:简单工厂模式所创建的任何对象都是这个角色的实例,通常是一个java类。
工厂类
package com.gengu.简单工厂;
public class Factory {
/**
* 静态工厂方法
* */
public static Car createcar(String carname){
Car car = null;
if(carname.equalsIgnoreCase("BWM")){
car = new BWM();
}else if(carname.equalsIgnoreCase("BENZ")){
car = new BENZ();
}
return car;
}
}
抽象产品
package com.gengu.简单工厂;
/**
* 汽车接口
* */
public interface Car {
public void run();
public void stop();
}
具体产品
package com.gengu.简单工厂;
/**
* 奔驰车
* */
public class BENZ implements Car{
@Override
public void run() {
System.out.println("BWM is running");
}
@Override
public void stop() {
System.out.println("BENZ was stoped");
}
}
package com.gengu.简单工厂;
/**
* 宝马车
* */
public class BWM implements Car{
@Override
public void run() {
System.out.println("BWM is running");
}
@Override
public void stop() {
System.out.println("BWM was stoped");
}
}
测试类
package com.gengu.简单工厂;
/**
* 测试类
* */
public class Client {
public static void main(String[] args) {
Car car = Factory.createcar("bwm");
car.run();
}
}
从上面的代码可以看出,简单工厂没有工厂方法模式的扩展性高,因为如果我现在增加一个比亚迪车,我的工厂方法也需要相应的增加一个判断条件,这样实际上就不符合开闭原则,对扩展开放,对改变关闭。
分享到:
相关推荐
Java简单工厂模式和传统模式实现对比,通过简单实例比对两种方式差异,体现传统模式的弊端及工厂模式优势。利于初学者后续接触spring
Java 简单工厂模式例子,Eclipse直接引入就可以使用
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
JAVA简单工厂模式四则运算计算器
java简单工厂模式源码实例,可用于java简单工厂模式学习!
JAVA简单工厂创立性模式介绍,包含简单工厂,工厂方法,抽象工厂。举例说明让您更好理解!
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
有关java简单的工厂模式士大夫的广泛的发的的辅导费东方德发德辅道
一个简单的工厂模式(java)
XML解析器-简单工厂模式.doc XML解析器-简单工厂模式.doc
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂
主要介绍了Java简单工厂模式定义与用法,结合实例形式分析了java简单工厂模式的相关定义与使用技巧,并给出了原理类图进行总结,需要的朋友可以参考下
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式
简单工厂模式通过一个工厂类来创建产品对象;
本文主要介绍了JAVA简单工厂模式(从现实生活角度理解代码原理)的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
定义: 结构说明: 相关概念: 接口: 接口与抽象类的区别: 面向接口编程: 功能: 时序图: 优缺点: 代码阐释:
这是代码,介绍请查看以下博客地址: http://www.cnblogs.com/homg/p/3548110.html代码乱码请使用utf-8编码。
简单工厂模式 SimpleFactory,适用于业务相对较简单地情况,少扯闲话,先上code: ~~ ICar.java ~~ 抽象产品角色接口 /** * @author VerpHen * @date 2013年9月10日 上午9:36:19 */ package org....