• JAVA简单工厂模式(从现实生活角度理解代码原理)


    简单工厂模式(Simple Factory),说他简单是因为我们可以将此模式比作一个简单的民间作坊,他们只有固定的生产线生产固定的产品。也可以称他为静态工厂设计模式,类似于之前提到过静态代理设计模式,一条生产线生产一种产品(一个代理代理一种业务),为了方便大家理解,我们将KFC比作一个简单的工厂,实现代码如下:

     1 //建造接口(或者抽象类)提供食物生产方法
     2 interface Food{
     3     public  abstract void get();
     4 }
     5 //汉堡类(后厨生产线)来实现食物生产方法
     6 class Hamburger implements Food{
     7     public  void get(){
     8         System.out.println("汉堡来了");
     9     }
    10 }
    11 //炸鸡类(后厨生产线)来实现食物生产方法
    12 class Chicken implements Food{
    13     public  void get(){
    14         System.out.println("炸鸡来了");
    15     }
    16 }
    17 //KFC(静态工厂类)
    18 class KFC{
    19     //提供获取食物的方法(传入的参数name为食客所点食物)
    20     public static Food getFood(String name){
    21         /*如果所点食物是炸鸡/汉堡(见名知义)
    22          *则实例化该生产线(通知对应后厨生产线)
    23          */
    24         if(name.equals("炸鸡")){
    25             return new Chicken();
    26         }
    27         if(name.equals("汉堡")){
    28             return new Hamburger();
    29         }
    30         return null;
    31     }
    32 }
    33 //测试类
    34 public class Test{
    35     public static void main(String[] args){
    36         KFC kfc = new KFC();//实例化KFC
    37         Food m = kfc.getFood("炸鸡");
    38         Food n = kfc.getFood("hanbao");//输入的字符串不符合工厂类对应值
    39         try{
    40             m.get();
    41             n.get();
    42          //添加异常处理(如果没有对应生产线则提示异常处理结果)
    43         }catch(NullPointerException e){
    44             System.out.print("没有你要的食物");
    45         }
    46     }
    47 }

    输出结果:

     1 炸鸡来了 2 没有你要的食物 

  • 相关阅读:
    set<char*>s
    sscanf()函数。
    C语言函数sscanf()的用法 (转载
    zjut 1179 平均数
    C++数据间隔
    C++ 保留小数
    c++ 保留小数
    c语言 保留两位小数
    c++ 如何实现保留小数并 且 不进行四舍五入
    uva-657-搜索
  • 原文地址:https://www.cnblogs.com/panhouye/p/6102227.html
Copyright © 2020-2023  润新知