工厂方法模式
定义
只考虑一种产品的生产,即工厂方法模式只考虑同等级的产品,用户只需要知道工厂的名字就可以创建相应的产品
架构
抽象工厂、具体工厂、抽象产品、具体产品
代码
Factory(抽象工厂)
public interface Factory {
NewBee make();
}
FactoryA(具体工厂A)
public class FactoryA implements Factory {
@Override
public NewBee make() {
System.out.print("工厂A===>");
return new NewBeeA();
}
}
FactoryB(具体工厂B)
public class FactoryB implements Factory {
@Override
public NewBee make() {
System.out.print("工厂B===>");
return new NewBeeB();
}
}
NewBee(抽象产品)
public interface NewBee {
void Giao();
}
NewBeeA(具体产品A)
public class NewBeeA implements NewBee {
@Override
public void Giao() {
System.out.println("我是产品A");
}
}
NewBeeB(具体产品B)
public class NewBeeB implements NewBee {
@Override
public void Giao() {
System.out.println("我是产品B");
}
}
Test
public class Test {
public static void main(String[] args) {
Factory a = new FactoryA();
NewBee beeA = a.make();
beeA.Giao();
Factory b = new FactoryB();
NewBee beeB = b.make();
beeB.Giao();
}
}
总结
抽象工厂创建抽象产品,
具体工厂实现抽象工厂重写抽象工厂的方法生产具体产品,
想要什么产品就先创建一个生产该产品的工厂,通过工厂来生产。
其实像设计模式中的所有工厂模式,实现的无非都是同一个理念,通过一个媒介来得到具体想要的东西,,不同之处就在于有的工厂很牛逼什么都可以造,有的工厂有局限性只能造某样东西。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战