`
xwood
  • 浏览: 100339 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

接口模式(Interface)

阅读更多
        在说到接口模式之前首先需要提到两个概念,一个是Interface,一个是AbstractClass.
        Interface在Java中是为了规定类与类之间交互的行为,限制了彼此交互的方式。实现Interface的类需要实      现其所有方法。所以一般在Interface定义都有粒度的要求,即保证Interface在每次被implements的时候,其定义的所有方法都会被使用。所以,一般而言,接口的定义都应当在需求的基础上越小越好,避免将不同接口的方法硬揉在一个接口中。正如我们看到的,很多接口其实只有一个方法。因为一个类可以实现很多接口,所以,接口的方法少并不会限制类的方法。重要的是保证接口的功能明确,职责单一。这样,在限制类交互行为,明确设计方法才会有所帮助,并且,也将给扩展带来很大的自由,这一点当你的接口实现有所变化时就会体现的相当明显。
        AbstractClass即虚拟类,既然是类,自然是在设计是区别与Interface的。它要保证类定义的完整性,符合抽象的规范,并且还要提供扩展。
        在设计模式中,作为一个可扩展性高的设计,一般而言一个或几个Interface的实现都需要提供一个Stub作为存根,即实现Interface的一个或几个可以作为公用的方法,而对于其他一些不用或者有变化的方法则只是简单的提供一个空方法体。这个Stub一般就是通过AbstractClass来实现的。
        接口模式在实际操作过程中主要体现在两个阶段,两个阶段也体现了两种作用。
       
  • 第一个是设计阶段,设计阶段的接口模式主要体现为规范类的交互,为系统提供高的可扩展性。
  • 第二个是系统维护阶段,为存在的系统提供扩展的接口。


        超越普通接口的设计实现:
        1).Adapter模式:http://xwood.iteye.com/blog/1603781
        2).Facade模式
        3).Composite模式
        4).Bridge模式
分享到:
评论

相关推荐

    C# 控制台 interface接口实例

    通过模拟duck游戏功能来介绍interface的使用 其中使用了策略模式 推荐先看代码再看ppt,最后再体会策略模式的定义 策略模式定义: 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互...

    实验1:基于接口的DHCP配置.topo

    配置: 1、全局开启dhcp //DHCP enable ...dhcp select interface //选择接口模式 DHCP server dns-list 4.4.4.4 dhcp server lease day 0 hour 6 dhcp server exclude-ip-address 192.168.1.66 192.168.1.253

    TNT DOS-Extender Windows Interface Guide (Windows 接口指南)

    Windows Interface Guide (Windows 接口指南) A description of the Phar Lap WinPipe Application Program Interface (API) and a tutorial on using this API to build a Windows 3.1 graphical user interface ...

    讲解interface的例程

    根据策略模式做的例子,定义了接口,可作为接口讲解的例程,仔细体会什么时候可以定义接口

    Cisco路由器配置命令大全.docx

    switch配置命令 (1)模式转换命令 用户模式----特权模式,使用命令"enable" 特权模式----全局配置模式,使用命令"config t" 全局配置模式----接口模式,使用命令"interface+接口类型+接口号" 全局配置模式----线控模式,...

    SAP与其他系统接口

    SAP与其他系统接口,包括RFC ( Romote Function Call,远程函数调用 ) 接口模式,BAPI (Business Application Programming Interface)接口模式,ALE(Application Link and Enabling )/IDocs(Intermediate DOCument)...

    园区网IP连通模式分析.pdf

    交换机的接口类型总体上可以分为两大类,即 2 层接口(L2 Interface)和 3 层接口 (L3 Interface),其中 3 层接口仅三层交换机支持。 2 层接口包含 Access 端口、Trunk 端口和 L2 Aggregate Port。3 层接口包含 ...

    Java 设计模式

    4、接口隔离原则(Interface Segregation Principle)  使用多个隔离的借口来降低耦合度。 5、迪米特法则(最少知道原则)(Demeter Principle)  一个实体应当尽量少的与其他实体之间发生相互作用,使得系统...

    httpinterface

    # HttpInterface Windows上C++封装的HTTP库,包含三种实现模式(WinInet、WinHttp、socket) 主要实现了HTTP的get\post方法,下载到内存、下载到本地文件,回调下载进度等接口 测试程序中展现了常用的几个方法。 ...

    24种设计模式介绍与6大设计原则

    4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从...

    js-interface:在 js 中实现接口的部分能力

    js-interface介绍在做一个前后分离的项目时,有些头疼 Api 之类的东西要怎么管理,在阅读 一书时,第二章提到了在 JavaScript 中模拟接口 (interface) 的概念,以方便使用众多设计模式,因此尝试着做一个接口的模拟...

    Shooter Game User Interface Starter 射击游戏用户界面套件Unity用户接口插件C#

    Shooter Game User Interface Starter 射击游戏用户界面套件Unity用户接口插件C# 支持Unity版本2020.1.2及以上 为您的下一个射击游戏项目探索新的射击游戏用户界面套件。 所有屏幕均使用 Unity UI 和 Text Mesh Pro ...

    Cisco路由器配置命令.doc

    Cisco路由器配置命令之模式转换命令 用户模式----特权模式,使用命令"enable" 特权模式----全局配置模式,使用命令"config t" 全局配置模式----接口模式,使用命令"interface+接口类型+接口号" 全局配置模式----线控...

    RGB_Interface_Init(spi+rgb)

    RGB_Interface_Init(spi+rgb) spi+rgb模式的oled屏初始化代码,自行参考下载

    node-interface:Node的简单接口实现

    因为策略模式是一种有用的模式,如果显式验证由不兼容的实现引起的错误,调试会更容易。 声明一个接口 接口只是一个描述实现的节点模块: module . exports . myInterface = { name : "MyInterface" , method :...

    设计模式Demo

    4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从...

    基础命令.rtf

    show ip interface brief 查看设备接口的简要信息 show controllers serial 0 查看接口是DTE/DCE? 全局配置模式 interface serial 0 进入接口serial 0 clock rate 64000 设置时钟频率 router>普通用户模式 router#...

    API串行外设接口协议

     SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件, [编辑本段] 接口包括以下四种信号:  (1)MOSI – 主器件数据输出,从器件数据输入  (2)MISO – 主器件数据输入,从器件数据输出 ...

    SunOSTM 5.10 网络接口和系统接口

    第2 章介绍用于远程共享内存的应用编程接口(Application Programming Interface, API) 框架 和库函数。 第3 章介绍SunOS 进程调度器的操作、调度器行为的修改、调度器与进程管理接口的交互 操作以及性能影响。 第4 ...

Global site tag (gtag.js) - Google Analytics