您的位置:首页 > 编程语言 > Java开发

spring学习必备设计模式之工厂模式

2016-03-02 16:53 465 查看
参考简单工厂模式

学习前需要知识:面向对象;多态。

1.对象是类的实例,通过对象可以操作类的方法

2.多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象

先说简单工厂模式:

工厂模式的作用:用于创建对象

首先需要这么几个东西:具体产品类,抽象产品类,工厂类和客户端。

具体产品类:将需要创建的各种不同对象的相关代码封装到不同类中,这些类称为具体产品类。

抽象产品类:将公共代码进行抽象和提取后封装在一个类中,这个类叫产品抽象类。

工厂类:在工厂类中提供一个创建产品的方法,该方法根据传递参数的不同创建不同的具体产品对象。

客户端:客户端调用工厂类的方法并传入相应的参数即可得到一个产品对象。

例子:

1.抽象产品类

package com.productpattern;
/*
* 这是一个抽象产品类
* 每个产品都可以供使用
*/
public interface Use {
public void use();
}


2.具体产品类:

public class Pencil implements Use {

@Override
public void use() {
System.out.println("------>我是铅笔我可以被人使用");

}

public void write() {
System.out.println("------>我是铅笔我可以用来书写");

}
}

public class Eraser implements Use {

@Override
public void use() {
System.out.println("---->我是橡皮我可以被人使用");

}

public void cachu() {
System.out.println("---->我是橡皮擦可以擦除");

}

}


3.工厂类

public class Factory {
//提供创建产品的方法
public Use produce(String type){
if("pencil".equals(type)){
System.out.println("工厂模式用于创建对像,铅笔将要被创建");
return new Pencil();

}else if("eraser".equals(type)){
System.out.println("工厂模式用于创建对<span style="font-family: Arial, Helvetica, sans-serif;">像</span>,橡皮擦将要被创建");
return new Eraser();
}
return null;

}
}


4.客户端

*
* 客户端调用工厂类的方法并传入参数
*/
public class Client {
public static void main(String args[]){
Factory fac = new Factory();
Use u = fac.produce("eraser");//通过工厂类创建产品对象
System.out.println("我被创建了");
/*
* fac.produce("eraser")创建了具体产品类
* 具体产品类是抽象产品类的父类
* 这里用了多态的知识
*/
//Use u = new Pencil();
u.use();
}
}

5.输出结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工厂模式 多态