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
    */
     

     
  • 相关阅读:
    MVC中使用AuthorizeAttribute做身份验证操作
    Entity Framework 5.0 Code First全面学习
    AngularJs学习教程
    安装完Oracle数据库,给scott账户解锁方法
    Signalr学习教程
    javascript学习教程【Qi Fei】
    并行开发
    MongoDB教程【一】
    统计学习概念
    自学Python的点滴
  • 原文地址:https://www.cnblogs.com/shihao/p/2500462.html
Copyright © 2011-2022 走看看