zoukankan      html  css  js  c++  java
  • .net C# 程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。

    面试笔试题:
    程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
    要求:
    1.要有联动性,老鼠和主人的行为是被动的。
    2.考虑可扩展性,猫的叫声可能引起其他联动效应。

     

    Code
    public interface Observer
    {
    void Response(); //观察者的响应,如是老鼠见到猫的反映
    }
    public interface Subject
    {
    void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠
    }
    public class Mouse : Observer
    {
    private string name;
    public Mouse(string name, Subject subj)
    {
    this.name = name;
    subj.AimAt(this);
    }

    public void Response()
    {
    Console.WriteLine(name + " attempt to escape!";
    }
    }
    public class Master : Observer
    {
    public Master(Subject subj)
    {
    subj.AimAt(this);
    }

    public void Response()
    {
    Console.WriteLine("Host waken!";
    }
    }

    public class Cat : Subject
    {
    private ArrayList observers;
    public Cat()
    {
    this.observers = new ArrayList();
    }
    public void AimAt(Observer obs)
    {
    this.observers.Add(obs);
    }
    public void Cry()
    {
    Console.WriteLine("Cat cryed!";
    foreach (Observer obs in this.observers)
    {
    obs.Response();
    }
    }
    }
    class MainClass
    {
    static void Main(string[] args)
    {
    Cat cat = new Cat();
    Mouse mouse1 = new Mouse("mouse1", cat);
    Mouse mouse2 = new Mouse("mouse2", cat);
    Master master = new Master(cat);
    cat.Cry();
    }
    }

    下面的程序运行后:

    Code
    class Program
    {
    static void Main(string[] args)
    {
    Class1 o1 = new Class1();
    Class1 o2 = new Class1();

    }
    }
    class Class1
    {
    private static int count = 0;
    static Class1()
    {
    count++;
    }
    public Class1()
    {
    count++;
    }
    }

  • 相关阅读:
    aiohttp简介及快速使用
    Git的学习与使用
    基于scrapy-redis的分布式爬虫
    异步编程之asyncio简单介绍
    Scrapy框架中的CrawlSpider
    scrapy中selenium的应用
    ua池和代理池
    Scrapy持久化存储
    Scrapy的日志等级和请求传参
    virtualenv搭建Python虚拟环境
  • 原文地址:https://www.cnblogs.com/longhao510/p/8511198.html
Copyright © 2011-2022 走看看