首页 > 其他分享 >工厂模式-简单工厂

工厂模式-简单工厂

时间:2022-08-24 00:12:56浏览次数:56  
标签:excute String Car class 模式 工厂 简单 public car

public interface Car {
String excute();
}


public class BenchiCar implements Car{
public String excute() {
System.out.println("奔驰车生产....");
return "OK";
}
}


public class BwmCar implements Car{
public String excute() {
System.out.println("宝马车生产....");
return "OK";
}
}



public class BydCar implements Car{

public String excute() {
System.out.println("比亚迪车生产....");
return "OK";
}
}



public class CarFactory {

public static Car getCar(String carType) {
Car car = null;
if ("benchi".equals(carType)) {
car = new BenchiCar();
} else if ("bwm".equals(carType)) {
car = new BwmCar();
} else if ("byd".equals(carType)) {
car = new BydCar();
}
return car;
}
}


public class SimpleFactoryDemo {
/**
* 1.定义抽象产品接口
* 2.定义具体产品实现类
* 3.定义生产工厂实现类及静态方法
* 4.demo测试
*
* 优点:不必关心类对象如何创建,实现了解耦,把初始化实例时的工作放到工厂里进行,使代码更容易维护
* 缺点:
* 1,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂
* 2,静态方法不能被继承和重写
* @param args
*/
public static void main(String[] args) {
Car benchi = CarFactory.getCar("benchi");
benchi.excute();
Car bwm = CarFactory.getCar("bwm");
bwm.excute();
Car byd = CarFactory.getCar("byd");
byd.excute();
}
}

标签:excute,String,Car,class,模式,工厂,简单,public,car
From: https://www.cnblogs.com/NIAN2011/p/16618326.html

相关文章

  • Netty - NIO 之 Selector模式
    一、总结豁然开朗,之前以为非阻塞的实现是因为selector。现在才知道selector的为了让非阻塞变成更好:无事件时,阻塞有事件时,非阻塞 二、背景知识2.1事件的类型 ......
  • 设计模式10 - 设计模式 - 适配器设计模式(高频-结构型)
    一、定义适配器模式将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。    适配器模式......
  • 1089 狼人杀-简单版——20分
    以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1号玩家说:“2号是狼人”,2号玩家说:“3号是好人”,3号玩家说:“4......
  • 32位保护模式下的分段(GDT相关)
    (一)Intel系列微处理器的3种工作模式1.实模式工作方式相当于一个8086。在实模式下,用户程序对内存的访问非常自由,没有任何限制,随随便便就可以修改任何一个内存单元。......
  • 什么是ELK(小白简单快速的认识什么是ELK)
    今天继续给大家介绍Linux运维相关知识,本文主要内容是ELK的基本原理。一、ELK简介ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件......
  • leetcode 697. Degree of an Array 数组的度(简单)
    一、题目大意https://leetcode.cn/problems/degree-of-an-array给定一个非空且只包含非负数的整数数组nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的......
  • 4种常见分支模式解析及优劣对比
      团队研发的本质   我们曾经接触到一家企业,它一开始只有8个人,那个时候每个月都可以发一两个版本出去,客户都可以用到,因为他们是做医院的信息管理HIS系统。他......
  • 常用设计模式(Python版)
    1.设计模式是什么?有什么用?设计模式是软件开发过程中经过验证的、用于解决特定环境下、重复出现的、特定问题的解决方案。根据GoF(GangOfFour),设计模式被分为三类:创......
  • SQLSerServer简单触发器同步Bak表
    USE[ITL]GO/******Object:Trigger[dbo].[TR_LMS_Interface_Order_INSERT]ScriptDate:2022/8/2317:16:48******/SETANSI_NULLSONGOSETQUOTED_IDENTIF......
  • 为什么浏览器的默认请求模式都是GET?
    因为get方式只是用于查询,不需要和数据库进行交互,同时一个get请求发送后,会在浏览器中留下缓存,下次访问同一url的话,get请求为了节省时间和空间就会直接走缓存,更加方便快捷......