简单工厂模式

本文介绍了一个简单的工厂模式案例,该模式使用一个水果工厂类来创建不同类型的具体水果对象,如苹果和橘子。通过一个抽象的水果接口定义了所有水果的行为,并通过工厂类实现了不同水果的实例化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单工厂模式

  我有一个水果工厂负责生产 苹果和橘子

  这个时候我有一个水果的抽象接口,所有水果都来实现这个接口

  

// 水果的接口

public interface Fruit {
public String getTaste();
public String getName();
}
//苹果的实现类

public class Apple implements Fruit{
@Override
public String getTaste() {
return "我的味道有点甜";
}

@Override
public String getName() {
return "我的名字叫苹果";
}
}
//橘子的实现类


public class Orange implements Fruit{
@Override
public String getTaste() {
return "我的味道有点酸";
}

@Override
public String getName() {
return "我的名字叫橘子";
}
}

//工厂类


public class FruitFactory {
public static Fruit createFruit(String fruitName){
Fruit fruit=null;
switch (fruitName){
case "apple":
fruit=new Apple();
break;
case "orange":
fruit=new Orange();
break;
default:
System.out.println("没有匹配的水果可生产");
break;
}
return fruit;
}
}

   这样通过这个工厂就能由客户决定生产什么水果


public class Customer {
public static void main(String[] args) {
Fruit fruit=FruitFactory.createFruit("apple");
System.out.println(fruit.getName());
System.out.println(fruit.getTaste());
Fruit origin=FruitFactory.createFruit("orange");
System.out.println(origin.getName());
System.out.println(origin.getTaste());

}
}

 

这样就能得到客户想要的东西,而客户并不知道如何实现的生产过程

但是也有一个缺点就是,老板过来说,我们的销量太好了,准备添加其他水果,小李啊你来搞一下,小李一看,这没办法只能改源代码啊,于是乎就违反了开闭原则。

所谓的开闭原则,就是写完的代码不要老改动,而是去拓展

这也就是简单工厂模式的缺点

进而出现了工厂模式,工厂模式是简单工厂模式的拓展和抽象

 

转载于:https://www.cnblogs.com/qxhn/p/9124383.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值