网站最佳颜色搭配,临海如何制作公司网站框架,接入商 济南网站建设,中视频自媒体平台注册官网1#xff0c;简介#xff1a;简单工厂模式#xff0c;又称为静态工厂模式#xff0c;是通过专门定义一个类来负责创建其他类的实例#xff0c;被创建的实例通常都具有共同的父类。 2#xff0c;简单工厂模式的结构 2.1#xff1a;简单工厂的通用结构 2.2#xff1a;示意…1简介简单工厂模式又称为静态工厂模式是通过专门定义一个类来负责创建其他类的实例被创建的实例通常都具有共同的父类。 2简单工厂模式的结构 2.1简单工厂的通用结构 2.2示意性实现 2.3从上图可以看出简单工厂模式就是由一个工厂类根据传入的参数来决定创建哪个产品的实例 简单工厂模式涉及到工厂角色抽象产品角色以及具体产品角色等三个角色 2.3.1工厂类角色这个工厂类是简单工厂模式的核心含有与应用相关的业务逻辑工厂类在客户端的直接调用下创建产品对象由一个具体的java类来实现 2.3.2抽象产品角色担任这个角色的类是由工厂模式创建的对象的父类或者是它们共同拥有的接口抽象产品角色可以用一个java接口或者是抽象类来实现 2.3.3具体产品角色工厂模式创建的对象都是这个角色的实例具体产品角色由一个具体的java类来实现 2.4源代码 2.4.1:新建一个食物类的接口。 package SimpleFactory;/*** ********************************************************
* ClassName: Food
* Description: 食物接口*
***********************************************************/
public interface Food {public void say();
} 2.4.2:建立两个具体产品类 实现食物接口 1薯条类 package SimpleFactory;
/*** ********************************************************
* ClassName: Chips
* Description: 薯条实体类 实现食品接口
*
***********************************************************/
public class Chips implements Food{Overridepublic void say(){System.out.println(我是薯条);}
} 2麦香鸡类 package SimpleFactory;
/*** ********************************************************
* ClassName: McChicken
* Description: 麦香鸡实现类 实现食品接口
*
***********************************************************/
public class McChicken implements Food{Overridepublic void say() {System.out.println(我是麦香鸡);}
} 2.4.3创建工厂类 package SimpleFactory;
/*** ********************************************************
* ClassName: SimpleFacory
* Description: 简单工厂模式工厂类根据传过来的参数确定需要实例化的对象
* 返回实现类的父类类型
*
***********************************************************/
public class FoodFacory {public static Food getFood(String type){if(type.equalsIgnoreCase(Chips)){return new Chips();}else if(type.equalsIgnoreCase(McChicken)){return new McChicken();}else{System.out.println(没有可以实例化的对象);return null;}}
} 2.4.4创建测试类 package SimpleFactory;
/*** ********************************************************
* ClassName: SimpleFactoryTest
* Description: 简单工厂模式测试类
*
***********************************************************/
public class SimpleFactoryTest {public static void main(String[] args){//实例化Chips chips (Chips) FoodFacory.getFood(Chips);McChicken chicken (McChicken) FoodFacory.getFood(McChicken);chips.say();chicken.say();}
} 2.4.5运行测试类得到如下结果 3总结 3.1优点简单工厂模式的核心是工厂类这个类含有必要的判断逻辑可以决定在什么时候创建产品类的实例而客户端可以直接调用工厂类来创建实例从而免除直接创建实例的责任简单工厂模式通过这种方式实现了对实例化责任的分割。 3.2缺点1将所有的实例化责任放在一个工厂类里面如果工厂类不法正常工作则整个系统崩溃。 2而在系统的后续扩展中都需要修改工厂类扩展较为困难。 3由于工厂类使用静态方法作为工厂类而静态方法无法被子类继承因此工厂角色无法形成继承的等级结构。转载于:https://www.cnblogs.com/shun-gege/p/7451048.html