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

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    using CompositePattern;
    using PrototypePattern;

    //  Prototype Pattern Pattern        August 2007
    //  Makes use of the Photo Librray examples
    // Shares (i.e. deep copys) parts of the hierarchy, then makes changes
     
      // The Client
     class CompositePatternExample {
        
        static void Main () {
            IComponent <string> album = new Composite<string> ("Album");
            IComponent <string> point = album;
            IComponent <string> archive = new Composite<string> ("Archive");
            string [] s;
            string command, parameter;
          // Create and manipulate a structure
            StreamReader instream = new StreamReader("prototype.dat");
            do {
              string t= instream.ReadLine();
              Console.WriteLine("\t\t\t\t"+t);
              s = t.Split();
              command = s[0];
              if (s.Length>1) parameter = s[1]; else parameter = null;
              switch (command) {
                  case "AddSet"   :   IComponent <string> c =
                                                    new Composite <string> (parameter);
                                             point.Add(c);
                                             point = c;
                                            break;
                  case "AddPhoto":  point.Add(new Component <string> (parameter));
                                           break;
                  case "Remove"   : point = point.Remove(parameter);
                                           break;
                  case "Find"        :  point = album.Find(parameter);  break;
                  case "Display"    :  if (parameter==null)
                                                Console.WriteLine(album.Display(0));
                                            else
                                                Console.WriteLine(archive.Display(0));
                                            break;
                  case "Archive"     :  archive = point.Share(parameter,archive); break;
                  case "Retrieve"  :  point = archive.Share(parameter,album); break;
                  case "Quit"        : break;
            }

        } while (!command.Equals("Quit"));
        }
    }
    /*Output
        AddSet Home
                    AddPhoto Dinner.jpg
                    AddSet Pets
                    AddPhoto Dog.jpg
                    AddPhoto Cat.jpg
                    Find Album
                    AddSet Garden
                    AddPhoto Spring.jpg
                    AddPhoto Summer.jpg
                    AddPhoto Flowers.jpg
                    AddPhoto Trees.jpg
                    Display
    Set Album length :2
    --Set Home length :2
    ----Dinner.jpg
    ----Set Pets length :2
    ------Dog.jpg
    ------Cat.jpg
    --Set Garden length :4
    ----Spring.jpg
    ----Summer.jpg
    ----Flowers.jpg
    ----Trees.jpg

                    Find Pets
                    Archive Pets
                    Display Archive
    Set Archive length :1
    --Set Pets length :2
    ----Dog.jpg
    ----Cat.jpg

                    Find Album
                    Remove Home
                    Find Album
                    Remove Garden
                    Display
    Set Album length :0

                    Retrieve Pets
                    Display
    Set Album length :1
    --Set Pets length :2
    ----Dog.jpg
    ----Cat.jpg

                    Quit
    */
     


  • 相关阅读:
    LeetCode 258 Add Digits
    LeetCode 231 Power of Two
    LeetCode 28 Implement strStr()
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 21 Merge Two Sorted Lists
    LeetCode 20 Valid Parentheses
    图形处理函数库 ImageTTFBBox
    php一些函数
    func_get_arg(),func_get_args()和func_num_args()的用法
    人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
  • 原文地址:https://www.cnblogs.com/shihao/p/2490430.html
Copyright © 2011-2022 走看看