行为的抽象即是接口(Interface)

行为抽象即可写成接口(Interface)。
如此http://www.cnblogs.com/insus/archive/2013/02/24/2924190.html链接的例子中的开与关,就可以把它们设计为抽象方法。
我们宣告接口时,使用interface来声明,就如宣告类使用class一样。在编程规范中,使用字母"I"开头。接口中的所有签名,如方法,属性,索引器,事件等。不能带修饰符,比如public,private等,不能有任何实现内容,也不能声明虚拟(virtual)的或静态(static)的等。

ISwitchable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for ISwitchable
/// </summary>
namespace Insus.NET
{
    public interface ISwitchable
    {
        void TurnOn();
        void TurnOff();
    }
}


Insus.NET在此列举几个方面,如果生活中,我们需要开关水龙头,门与窗户,手机关机更换电池或打开使用等等。这样,统一接口,在开发过程中可以做到规范程序。

比如白炽灯,实现接口:

IncandescentLamp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for IncandescentLamp
/// </summary>
namespace Insus.NET
{
    public class IncandescentLamp : ISwitchable
    {
        public IncandescentLamp()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public void TurnOn()
        {
            HttpContext.Current.Response.Clear();
            string On_Light = "<img src='Images/Light_O.gif' />";
            HttpContext.Current.Response.Write(On_Light);
        }

        public void TurnOff()
        {
            HttpContext.Current.Response.Clear();
            string Off_Light = "<img src='Images/Light_C.gif' />";
            HttpContext.Current.Response.Write(Off_Light);
        }
    }
}


水龙头实现接口:

WaterTap
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for WaterTap
/// </summary>
namespace Insus.NET
{
    public class WaterTap : ISwitchable
    {
        public WaterTap()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public void TurnOn()
        {
            //水龙头打开
        }

        public void TurnOff()
        {
            //水龙头关闭
        }
    }
}


门实现接口:

Door
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Door
/// </summary>
namespace Insus.NET
{
    public class Door: ISwitchable
    {

        public void TurnOn()
        {
           //写门打开的事情。
        }

        public void TurnOff()
        {
          //写门关闭的事情。
        }
    }
}


只要对象的行为有“开”与“关”的,均可以此接口为实现。

Insus.NET在ASP.NET开发过程中,使用过大量的接口,来解决诸多问题:http://www.cnblogs.com/insus/category/308317.html or http://www.cnblogs.com/insus/category/225730.html

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值