laifangsong's blog

取长补短,精益求精。 (打个广告,想做手机网站和asp/asp.net网站的可以跟我联系.QQ:25313644)
posts - 51, comments - 188, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

接口:猫、老鼠、主人面试题的接口实现

Posted on 2006-04-15 14:45 laifangsong 阅读(101) 评论(0)  编辑 收藏 所属分类: 概念
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace AspNetTest.Common
{
    
/// <summary>
    
/// Define_Delegate_CatMouse_Interface 的摘要说明。
    
/// </summary>

    public class Define_Delegate_CatMouse_Interface : System.Web.UI.Page
        
{
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            Cat1 cat 
= new Cat1();
            Mouse1 mouse1 
= new Mouse1(cat, "老鼠1");
            Mouse1 mouse2 
= new Mouse1(cat, "老鼠2");
            Master1 master 
= new Master1(cat);
            cat.Shout();
            
// 在此处放置用户代码以初始化页面
        }

    
        
public interface IAffectSubject
        
{    
            
void Response();
        }

        
public interface IOperateAffectSubject
        
{
            
void AddAffectSubject(IAffectSubject affectSubject);
        }

        
public class Master1 : IAffectSubject
        
{
            
public Master1(IOperateAffectSubject iOperateAffectSubject)
            
{
                iOperateAffectSubject.AddAffectSubject(
this);
            }

            
public void Response()
            
{
                HttpContext.Current.Response.Write(
"主人醒了!<br>");                                    
            }

        }

        
public class Mouse1 : IAffectSubject
        
{
            
public Mouse1(IOperateAffectSubject iOperateAffectSubject, string name)
            
{
                iOperateAffectSubject.AddAffectSubject(
this);
                
this.name = name;
            }

            
private string name;
            
public void Response()
            
{
                HttpContext.Current.Response.Write(name 
+ "跑了!<br>");                    
            }

        }

        
public class Cat1 : IOperateAffectSubject
        
{
            
public Cat1()
            
{
                affectSubjects 
= new ArrayList();
            }

            
private ArrayList affectSubjects;
            
public void AddAffectSubject(IAffectSubject affectSubject)
            
{
                affectSubjects.Add(affectSubject);
            }

            
public void Shout()
            
{
                HttpContext.Current.Response.Write(
"猫大叫!<br>");
                
foreach(IAffectSubject subject in affectSubjects)
                
{
                    subject.Response();
                }

            }

        }

        
        
Web 窗体设计器生成的代码
    }

}


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: