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

参考简单工厂模式

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

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.输出结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值