interface

每次敲IDAL层的时候 都是用的interface,如:

public interface  IUpIDAL

并不是很理解,就去网上看了看,然后就明白多了

//interface为了降低耦合度。 

//一个很好玩的例子: 
//看看下面的程序: 一个学校里边,有两种人:学生、老师。他们都要吃饭和睡觉。 

public interface 人
{
    void 吃饭();
    void 睡觉();
}
public class 学生 implements 人
{
    public void 吃饭()
    {
    //去食堂吃饭 } 

    public void 睡觉()
    {
    //回寝室睡觉 } 
    //其他特有方法,比如恋爱、打游戏 } 

public class 老师 implements 人
{
    public void 吃饭()
    {
   //回家吃饭 } 

    public void 睡觉()
    {
   //回家睡觉 } 

   //其它特有方法
    } 

public class 学校
{
    public void 开饭(人 ren)
    {
        ren.吃饭();
    }
    public void 放学(人 ren)
    {
        ren.睡觉();
    }
} 


//这里就用到了里氏代换原则,"开饭()"和"放学()"的参数都是人,那么这个地方如果换成学生和老师肯定也可以。 
   //人 a = new 学生();
//学校.开饭(a); 学校.放学(a); 
//这样执行的结果就是学生回寝室吃饭。 

  //人 b = new 老师();
//学校.开饭(b); 学校.放学(b); 
//这样执行的结果就是老师回家吃饭。 

//为什么要这样写呢?这样写有什么好处呢? 我在开饭的时候完全可以直接调用"学生.吃饭();"、"老师.吃饭();"啊。 接着看。 有一天,学校里来了第三种人,家长。 家长既不是去寝室睡觉也不是回家睡觉,而是旅馆睡觉,既不是去食堂吃饭也不是回家吃饭,而是去下馆子。 这个时候学校这个系统该怎么处理呢? 如果原来没有定义"人"这个接口那就麻烦啦,所有用到人的地方代码都要改。 现在不一样了,我可以直接定义一个类:家长,这个类实现人这个接口就可以了。 

//好,看代码: 

public class 家长 implements 人{ 
    public void 吃饭(){ 
        //下馆子 } 

    public void 睡觉(){ 
        //去旅馆睡觉 } 

    //其它特有方法,比如会见老师,晓之以钱,动之以利等等,不一而足 } 


//在调用的时候不需要修改任何代码,还和原来一样: 
    //人 c=new 家长(); 
       //学校.开饭(c); 
       //学校.放学(c); 
//轻松搞定家长的食宿问题! 

//这样一来学校来再多的客人都没关系啊,绝对可以应付自如,这也就是传说中的可扩展性! 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值