首页 > 其他分享 >9.10 工厂设计模式

9.10 工厂设计模式

时间:2023-06-10 22:27:15浏览次数:47  
标签:return void Factory 9.10 public IFood 工厂 设计模式 class

demo1


interface IFood {
    public abstract void eat();
}

class Bread implements IFood {
    public void eat(){
        System.out.println("吃面包~");
    }
}
class Milk implements IFood {
    public void eat(){
        System.out.println("喝牛奶");
    }
}


/**
* 获取IFood接口实例对象,利用此方法对外隐藏子类;由于Factory没有属性,所以定义static方法
* @return 存在指定标记返回对应子类实例,否则返回null;
*/
class Factory {
    public static IFood getInstance(String className){
        if("bread".equals(className)){
            return new Bread();
        } else if("milk".equals(className)){
            return new Milk();
        } else {
            return null;// 没有匹配返回null
        }
    }
}

public class HelloWorld {
    public static void main(String args[]){
        IFood food = Factory.getInstance("bread");// 通过工厂获取实例
        food.eat();
    }
}
  • 如果在日后进行子类扩充的时候,只需要修改Factory程序类即可实现。

标签:return,void,Factory,9.10,public,IFood,工厂,设计模式,class
From: https://www.cnblogs.com/pansidong/p/17472063.html

相关文章

  • java设计模式之(单例模式)
    单例模式(懒汉式和饿汉式)    在Java中指的是单例设计模式他是软件开发中最常用的设计模式之一。单:唯一例:实例单例设计模式:既某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式要点:  1.某个类只能有一个实例       构造器私有  2.它必须......
  • 转:设计模式之美
    转自:https://juejin.cn/post/71230293553656627341.概述1.1学习导读本文是极客时间专栏《设计模式之美》的学习笔记,详情请看原文。学习算法:是为了写出高效的代码;学习设计模式:是为了写出高质量(可扩展、可读、可维护)的代码;1.2为什么学习设计模式应对面试,算法、设计......
  • 设计模式的概念
    设计模式简介设计模式是一种最佳实践长期以来总结出来的解决一系列问题的一种套路。使用设计模式的目的:代码重用、工程化设计模式一般有多少种:23种、不设上限设计模式的类型设计模式的类型一共有四种:1.创建型设计模式:创建对象的同事隐藏创建的业务逻辑★工厂模式、★单......
  • 韶关木材加工厂火灾事故及工厂加强防火的措施
    安科瑞虞佳豪12月15日凌晨4时许,韶关市曲江区大塘镇一木材加工厂发生火灾,现场火势猛烈,无人员被困。经过近3小时的紧急救援明火成功熄灭。目前起火原因正进一步调查中。​木材属于可燃物质,燃点低,一般在250℃~300℃,有的木材用明火点燃时,较低着火点为157℃,自燃点一般在350℃左右。在......
  • golang实现设计模式汇总-创建型 | 结构型 | 行为型
    历时一个多星期的常用设计模式暂告一段落,今天汇总下使用频率较高的几种常见设计模式。以下个人根据类型分为3种,不喜勿喷:创建型结构型行为型1.创建型常用如下:单例模式简单工厂模式工厂模式抽象工厂模式建造者模式2.结构型常用如下:装饰器模式代理模式组合模式......
  • golang实现设计模式之装饰器模式-优缺点,适用场景
    装饰器模式是一种结构型设计模式,简单概括就是:不改变先有对象结构下,动态给对象增加一些职责。装饰器模式通过组合方式实现,与继承的异同:使用继承方式,具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。使用组合方式,创建装饰对象来装饰真实对象,原对象功能不变,另外扩展。......
  • golang实现设计模式之组合模式-优缺点与适用场景
    组合模式是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。结构抽象构件(Component)角色:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象构件......
  • golang实现设计模式之代理模式-优缺点,适用场景
    代理模式作为一种结构型的设计模式,因为某种原因,需要对访问的对象通过代理访问目标对象,访问对象不适合或者不能直接引用该目标对象,代理就成为访问对象和目标对象的中介。结构1.抽象主题(Subject)类。通过接口或抽象类声明真实主题和代理对象实现的业务方法。2.真实主题(RealSubje......
  • golang实现设计模式之责任链模式-优缺点,适用场景
    责任链模式是一种行为型的设计模式,也叫职责链,定义:在这样的场景中,请求需要经过一系列的处理者,通过列表或者链表将处理者组合起来,请求依次被处理者处理,如果需要中断,也可以及时退出处理。上述的这种的应用场景,典型的就是在web应用中的中间件或者拦截器,比如Gin框架的中间件。结......
  • golang实现设计模式之策略模式-优缺点,适用场景
    策略模式是一种行为型的设计模式,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户,或者认为把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。结构1.抽象策略(Strategy)类。定义了一个公共接口,各种不......