zoukankan      html  css  js  c++  java
  • factorymethodavocados.cs

      using System;
      using System.Collections;

      class FactoryPattern {
     
      // Factory Method Pattern       Judith Bishop 2006
      //  Example of exporting from different suppliers
        
      interface IProduct {
        string ShipFrom();
      }

      class ProductA : IProduct {
        public String ShipFrom () {
          return " from South Africa";
        }
      }
     
      class ProductB : IProduct {
        public String ShipFrom () {
                return "from Spain";
        }
      }

      class DefaultProduct : IProduct {
        public String ShipFrom () {
                return "not available";
        }
      }

      class Creator {
        public  IProduct FactoryMethod(int month) {
          if (month >= 4 && month <=11)
            return new ProductA();
          else
          if (month == 1 || month == 2 || month == 12)
            return new ProductB();
          else
            return new DefaultProduct();
        }
      }
     
        static void Main() {
          Creator c = new Creator();
          IProduct product;
            
          for (int i=1; i<=12; i++) {
            product = c.FactoryMethod(i);
            Console.WriteLine("Avocados "+product.ShipFrom());
          }
        }
      }
     
    /* Output
    Avocados from Spain
    Avocados from Spain
    Avocados not available
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados  from South Africa
    Avocados from Spain
    */
     

     
  • 相关阅读:
    服务端渲染
    node基础
    vue不同组件间的通信
    mui底部导航栏
    在mui中引入自定义的字体图标
    axios的使用
    vue多视图
    多元线性回归:波士顿房价预测问题TesnsorFlow实战
    MNIST手写数字识别:分类应用入门(实践篇)
    7-3 java高级 22_19寻找最大块的问题 (20 分)
  • 原文地址:https://www.cnblogs.com/shihao/p/2500462.html
Copyright © 2011-2022 走看看