`
javatar
  • 浏览: 1714189 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

哪些接口改为抽象类

    博客分类:
  • HTTL
阅读更多
CommonTemplate(http://commontemplate.org)开始是以接口驱动设计的,
core(API)包和config(SPI)包全部为接口,
准备发布正式版,保持API等向前兼容,为了项目的可维护性,需要将一些接口改成抽象类,
抽象类比接口的最大优势是能够在后续版本添加方法,并保持向前兼容(提供一个默认实现或空实现或抛出不支持异常都可以)。
就这一点,很明显,Context(包括GlobalContext,LocalContext),Configuration(包括DirectiveConfiguration,ExpressionConfiguration)必需改成抽象类,
因为当升级版本,需要为Context提供更多外部交互功能时,肯定要增加方法,
而如果新版本的引擎实现需要更多配置信息时,Configuration也需要增加方法,并提供默认配置信息以向前兼容。
当然只这样考虑抽象类的使用是很狭义的,按理论is-a而非has-a或like-a的都应是类,而非接口,
这样感觉TemplateSource, Template也应该改成抽象类,
相应的Directive(包括BlockDirective), Expression(包括Operator,BinaryOperator,UnaryOperator)是否也应该如此呢?
但Directive等在AOP时使用了代理等方式,使用接口更易实现。
思考...
分享到:
评论

相关推荐

    详细解析Java中抽象类和接口的区别

    抽象类的主要目的是为子类提供一种共有的基本结构,子类必须实现所有抽象方法才能被实例化。 2. **接口**:接口是一组抽象方法的集合,它规定了一种行为规范,但不提供具体的实现。实现该接口的类必须提供接口中...

    抽象类 接口

    子类继承抽象类后,必须重写抽象方法以提供具体实现,除非子类也声明为抽象类。 #### 二、接口的概念与特性 接口是一种规范,定义了一组行为或操作的集合,而不关心这些行为是如何实现的。在Java中,接口同样使用`...

    Java语言的接口与抽象类

    5. 实现:实现接口的类必须实现接口中声明的所有方法,否则这个类也必须被声明为抽象类。 其次,抽象类(Abstract Class)是包含抽象方法的类,使用`abstract`关键字声明。抽象类的特点: 1. 抽象方法:抽象类可以...

    java中的抽象类和接口的理解

    一个类如果包含了抽象方法,则该类必须声明为抽象类。抽象类的主要用途是作为其他类的基础类,通过继承抽象类来实现或重写其中的抽象方法。 **特点:** 1. **抽象类可以有构造器**:这使得抽象类能够初始化其状态...

    浅析Java抽象类和接口的比较

    Java中的抽象类(abstract class)和接口(interface)都是用于创建抽象化模型的重要工具,它们在面向对象编程中扮演着核心角色。这两种机制都允许我们定义一组方法的签名,但不提供具体实现,从而实现“设计契约”...

    C#中抽象类和接口的区别.txt

    ### C#中抽象类与接口的区别 在C#编程语言中,抽象类和接口都是用于实现面向对象编程中多态特性的关键概念。它们都旨在为其他类提供一种定义行为和特性的模板或规范,但它们之间存在着重要的区别。本文将详细探讨C#...

    Java源代码:抽象类和接口

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,为其他类提供模板或行为指南。让我们深入探讨这两个概念及其在Java中的应用。 首先,我们来理解抽象类。在Java中,抽象类是一...

    JAVA中抽象类与接口的区别

    一个类如果包含了至少一个抽象方法,则该类必须声明为抽象类。 **示例代码:** ```java public abstract class Demo { public abstract void method1(); public abstract void method2(); // 具体方法 public ...

    Java抽象类接口与多态PPT教案学习.pptx

    Java抽象类接口与多态PPT教案学习 Java抽象类接口与多态是Java编程语言的核心概念,本篇资源文件将详细介绍Java中的抽象类、接口和多态的概念、特点和应用。 一、抽象类 抽象类是Java中的一种特殊的类,它不能被...

    Java接口和Java抽象类

    ### Java接口和Java抽象类详解 #### 一、引言 在面向对象编程语言Java中,接口(Interface)和抽象类(Abstract Class)是实现多态性和代码复用的重要手段。它们都允许开发者定义行为规范而不需要具体实现细节,但...

    java 抽象类及接口

    如果一个类包含至少一个抽象方法,那么该类必须被声明为抽象类。例如: ```java public abstract class Shape { abstract float area(); } ``` 在这个例子中,`Shape`类定义了一个抽象方法`area()`,没有提供具体...

    基于Java抽象类和接口实现疯狂动物城

    本实验手册即根据需求模拟完成一个简易的疯狂动物城游戏系统, 平台的全称为:使用抽象类和接口实现疯狂动物城项目(后简称为: crazyZoo) 。该系统的主要功能包括:查看动物城成员、入驻动物城、修改动物信息、查找疯狂...

    抽象类和接口的详细区别和联系

    一个类如果继承了抽象类,则必须重写其中的所有抽象方法,除非该类本身也声明为抽象类。 **特点:** 1. **封装行为**:抽象类可以定义一些通用的行为,子类可以通过继承来复用这些行为。 2. **模板方法模式**:抽象...

    面向对象与Java实现(抽象类、接口

    当一个类继承了抽象类,它必须实现所有的抽象方法,除非该类也被声明为抽象类。这确保了子类遵循了一套预定的行为规范,同时保留了灵活性以适应不同的具体实现。 ### 接口 接口是一种更加纯粹的抽象类型,它只包含...

    接口+抽象类+代理的简单例子

    子类继承抽象类时,必须实现所有抽象方法,或者本身也声明为抽象类。抽象类允许在不完全定义类的情况下提供部分实现,是代码重用和封装的一种方式。 最后,我们来看“代理”。代理模式是一种设计模式,它提供一个...

    接口抽象类正规版资料.ppt

    "接口抽象类正规版资料.ppt" 这份 ppt 资料主要讲解了 Java 中的接口和抽象类的概念。下面是这份资料的知识点总结: 1. 接口的定义和使用:在 Java 中,接口是一种抽象的概念,用于定义一组抽象方法和常量。接口的...

    第4章 接口、抽象类与包.ppt

    如果一个类包含抽象方法,那么该类必须声明为抽象类。抽象类可以包含非抽象方法(有实现的方法),这使得抽象类能够提供部分实现,让子类专注于自己的特定功能。 抽象类常用于表示一系列具有相似特征的具体概念的...

    实验3 抽象类和接口(2学时)

    掌握Java中抽象类和抽象方法的定义; 掌握Java中接口的定义,熟练掌握接口的定义形式以及接口的实现方法。 二、实验内容 1、按照要求使用Java进行编码。 编写一个抽象类Shape,其中有抽象方法getArea()和...

    抽象类和接口的区别

    ### 抽象类与接口:理解差异与应用场景 在面向对象编程中,抽象类与接口是两种关键的概念,它们在Java等语言中扮演着至关重要的角色。本文将深入探讨抽象类与接口的区别,以及它们各自的优势和适用场景,旨在帮助...

    Java 抽象类

    如果一个类包含至少一个抽象方法,那么该类必须声明为抽象类,使用`abstract`关键字修饰。 2. **抽象方法** 抽象方法不包含任何实现代码,只定义了方法签名,包括返回类型、方法名和参数列表。例如: ```java ...

Global site tag (gtag.js) - Google Analytics