⭐简单说两句⭐
作者:后端小知识
CSDN个人主页:后端小知识
GZH:
后端小知识
欢迎关注点赞收藏⭐️留言
定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类
工厂角色 factory
抽象产品 product
具体产品 concreteproduct
举个例子:
告诉工厂需要的手机名称,然后工厂生成手机
类图
我们编写代码的顺序:
Mobile > 具体Product > MobileFactory
Mobile.java
抽象产品
public abstract class Mobile {
protected String name;
protected float price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public abstract void call();
}
MiProduct.java
具体产品
public class MiProduct extends Mobile {
public MiProduct(){
this.name="Mi";
this.price=3000;
}
@Override
public void call() {
System.out.println("我的小米");
}
}
MobileFactory.java
工厂
public class MobileFactory {
public static Mobile createMobile(String name) {
Mobile mobile = null;
if(Objects.equals(name, "Vivo")){
mobile = new VivoProduct();
}else if(Objects.equals(name, "Mi")){
mobile = new MiProduct();
}
return mobile;
}
}
客户端
public class Client {
public static void main(String[] args) {
// 1.购买手机
Mobile m = MobileFactory.createMobile("Vivo");
// 2.使用手机
m.call();
}
}
1.对象的创建与使用是分离的
2.客户端无需知道具体产品的类名,只需知道具体产品所对应的参数
好啦,就到这里啦,简单工厂模式总体来说来说很容易理解的啦,若有疑问的友友欢迎评论区留言额
结语
谢谢你的阅读
,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!
作者:后端小知识
CSDN个人主页:后端小知识
GZH:后端小知识
欢迎关注点赞收藏⭐️留言