首页 新闻 搜索 专区 学院

缺省适配器模式是否不符合接口隔离原则?

0
悬赏园豆:20 [已关闭问题] 关闭于 2014-12-19 16:37

如题,《Java与模式》中对这个模式有介绍,其目的是为了解决如下问题:存在某个接口A,类B要实现这个接口,但是又不想实现这个接口中的所有方法,所有又增加了个抽象类C implements接口A,再用B继承C,C就是一个适配器角色。我想既然类B中不想实现接口A中的所有方法,为什么不把接口A拆成多个接口。这个模式是否违反了接口隔离原则?

我用C#仿照它的例子写了一段代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DefaultAdapter
{
    interface IFuckable
    {
        void functionOne();
        void functionTwo();
    }

    abstract class DefaultAdapter : IFuckable
    {
        public virtual void functionOne(){}
        public virtual void functionTwo() { }

    }


    class Client : DefaultAdapter
    {
        //only functionOne, no functionTwo
        public override void functionOne()
        {
            throw new NotImplementedException();
        }
  
    }
}

 Client那个类不想实现全部的接口方法,中间加了个抽象类来解决这个问题,是不是很怪异呀。

20
会长的主页 会长 | 专家六级 | 园豆:11556
提问于:2014-12-12 18:11
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册