工厂方法模式(Java)

工厂方法模式(Java)

下面是关于我所写的所有设计模式代码(还是建议自己手打或者想一个别的例子练习一次)
(https://github.com/lihang212010/DesignPatterns-/tree/master/designpatterns/src)

老规矩先一张正规UML
在这里插入图片描述

接下来是我举的例子
在这里插入图片描述
mV0L3dlaXhpbl80MzQ4NjgwNA==,size_16,color_FFFFFF,t_70)还是生产红色黑色笔这个例子,代码在下面,很好理解,建议先看代码,大佬除外。

在这里我们去掉了简单工厂模式,给每一个生产子类做一个工厂,然后工厂指向生产类,这样我们需要修改为黑色签字笔只需要修改主方法而不用修改封闭的代码,不违反封闭-开放原则(通常意义我们修改主方法中代码不属于违背封闭-开放原则)
工厂模式的运用很多,正规的产品(会更新)都会使用这个设计模式,比如QQ,王者荣耀,DNF等等。

生产类

public class Factory {

	public void  GetResult() {
		System.out.println("工厂生产签字笔");
	}
}

红色签字笔类

public class RedCreate extends Factory{

	@Override
	public void GetResult() {
		System.out.println("工厂生产红色签字笔");
	}
}

黑色签字笔类


	@Override
	public void GetResult() {
		System.out.println("工厂生产黑色签字笔");
	}
}


虚拟工厂类

public interface AbstractFactory {
Factory create();
}

黑色签字笔工厂

public class BlackFactory implements AbstractFactory{

	@Override
	public Factory create() {
		// TODO Auto-generated method stub
		return new BlackCreate();
	}

}

红色签字笔工厂

public class RedFactory implements AbstractFactory {

	@Override
	public Factory create() {
		return new RedCreate();
	}

}

主方法

public class Main {

	public static void main(String[] args) {
		
AbstractFactory factory=new RedFactory();
Factory c=factory.create();
c.GetResult();
	}

}

结果是输出 工厂生产红色签字笔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值