设计模式_简单工厂模式
来源:互联网 发布:射手座万代玩具淘宝 编辑:程序博客网 时间:2024/06/01 12:08
/**
*简单工厂模式 :
*简单工厂模式有三部分组成:1.抽象产品类;2.具体产品类;3.工厂类
*/
/**
* 枚举类型,作为工厂方法的参数,用来说明需要哪个产品
*/
enum PRODUCTTYPE {
PRODUCTONE, PRODUCTTWO
}
/**
*工厂类,用来生产具体的产片,根据给定的产品标志
*/
class Factory{
static Product Productfactory(PRODUCTTYPE type)
{
Product product = null;
switch (type) {
case PRODUCTONE:
product = new SubProductOne();
break;
case PRODUCTTWO:
product = new SubProductTwo();
default:
break;
}
return product;
}
}
/**
*产品抽象类
*/
interface Product{
// method
public void doSomeThing();
}
/**
*产品具体类2
*/
class SubProductOne implements Product{
// concrete method
public void doSomeThing(){
System.out.println("SubProductOne");
}
}
/**
*产品具体类2
*/
class SubProductTwo implements Product{
// concrete method
public void doSomeThing(){
System.out.println("SubProductTwo");
}
}
/**
*
* 客户端测试调用
*
*/
public class Pattern_01_SimpleFactory {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//需要产品SubProductOne
Product product_one = Factory.Productfactory(PRODUCTTYPE.PRODUCTONE);
product_one.doSomeThing();
//需要产品SubProductTwo
Product product_two = Factory.Productfactory(PRODUCTTYPE.PRODUCTTWO);
product_two.doSomeThing();
}
}
/**
*总结:简单工厂模式是工厂模式的一种特例,简化版的工厂模式。简单工厂从某种程度上降低了项目的耦合度,是一种低耦合的效果,比方说我们客户端,也就是调用该类的地方,创建
*类不需要知道是如何创建的,只需要调用该类的实例可以了。不用简单工厂模式,一般的做法是创建该类的实例,也就是创建类对象,然后进行类的初始化工作,如果初始化工作比较多的话,
*会使得调用地方大量的冗余,更甚者是提高了耦合度。当然如果产品类比较多的话,使用简单工厂模式,每一次添加一个产品类别,都要修改一下创建方法,违背了设计模式中的开闭原则。
*优点:低耦合 ,提高了软件架构的模块化。
*缺点:不符合设计模式中的开闭原则,对添加开放,对修改关闭,不利于项目的可扩展性。
*/
*简单工厂模式 :
*简单工厂模式有三部分组成:1.抽象产品类;2.具体产品类;3.工厂类
*/
/**
* 枚举类型,作为工厂方法的参数,用来说明需要哪个产品
*/
enum PRODUCTTYPE {
PRODUCTONE, PRODUCTTWO
}
/**
*工厂类,用来生产具体的产片,根据给定的产品标志
*/
class Factory{
static Product Productfactory(PRODUCTTYPE type)
{
Product product = null;
switch (type) {
case PRODUCTONE:
product = new SubProductOne();
break;
case PRODUCTTWO:
product = new SubProductTwo();
default:
break;
}
return product;
}
}
/**
*产品抽象类
*/
interface Product{
// method
public void doSomeThing();
}
/**
*产品具体类2
*/
class SubProductOne implements Product{
// concrete method
public void doSomeThing(){
System.out.println("SubProductOne");
}
}
/**
*产品具体类2
*/
class SubProductTwo implements Product{
// concrete method
public void doSomeThing(){
System.out.println("SubProductTwo");
}
}
/**
*
* 客户端测试调用
*
*/
public class Pattern_01_SimpleFactory {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//需要产品SubProductOne
Product product_one = Factory.Productfactory(PRODUCTTYPE.PRODUCTONE);
product_one.doSomeThing();
//需要产品SubProductTwo
Product product_two = Factory.Productfactory(PRODUCTTYPE.PRODUCTTWO);
product_two.doSomeThing();
}
}
/**
*总结:简单工厂模式是工厂模式的一种特例,简化版的工厂模式。简单工厂从某种程度上降低了项目的耦合度,是一种低耦合的效果,比方说我们客户端,也就是调用该类的地方,创建
*类不需要知道是如何创建的,只需要调用该类的实例可以了。不用简单工厂模式,一般的做法是创建该类的实例,也就是创建类对象,然后进行类的初始化工作,如果初始化工作比较多的话,
*会使得调用地方大量的冗余,更甚者是提高了耦合度。当然如果产品类比较多的话,使用简单工厂模式,每一次添加一个产品类别,都要修改一下创建方法,违背了设计模式中的开闭原则。
*优点:低耦合 ,提高了软件架构的模块化。
*缺点:不符合设计模式中的开闭原则,对添加开放,对修改关闭,不利于项目的可扩展性。
*/
0 0
- 大话设计模式_简单工厂模式
- 设计模式_简单工厂模式
- 设计模式02_简单工厂模式
- 设计模式_简单工厂模式
- 1.设计模式_简单工厂模式
- java设计模式_简单工厂模式
- 设计模式_简单工厂模式
- 设计模式_简单工厂模式
- 设计模式_简单工厂模式(2)
- php设计模式_简单工厂
- php设计模式_简单工厂2
- javascript设计模式_第二部分_简单工厂模式
- 设计模式_工厂模式
- 设计模式_工厂模式
- 设计模式_工厂模式
- (GOF23设计模式)_简单工厂模式详解
- 设计模式_简单工厂模式概述和使用
- 设计模式_改进策略模式_策略模式与简单工厂模式结合(Java)
- 学习MySQL——下载与安装
- Java并发学习笔记(8)发布逸出
- Facebook POP动画简单使用
- 实时显示iOS编写UI代码效果
- 用eclipse创建java web工程
- 设计模式_简单工厂模式
- 浅谈站群的再次重生带来的效果到底如何
- 运行时样式
- JavaWeb-利用Enumeration获取初始化参数
- Oracle 常用的函数小结
- 定制Android系统开发之二——系统服务
- ResponseProcessCookies:121 - Cookie rejected问题
- Android Studio Debug调试教程
- 图像显著性检测总结