这个设计具体该如何实现?当前有一个接口IValidatable和两个需要实现这个接口的类Composite,Dialog
public interface IValidatable{
public boolean isValid();
public void computeValid();
public void addValidator(IInputValidator validator);
public List<IInputValidator> getValidators();
public void addValidators(IInputValidator[] validators);
}
现在在一个GUI(SWT)程序的设计中有两种类型的对象需要实现这个接口,
一个是Composite的扩展类ValidatableComposite,
一个是Dialog的扩展类ValidatableDialog(Composite and Dialog都非接口而是实际类).
假定这两个类内部对
public void addValidator(IInputValidator validator);
public List<IInputValidator> getValidators();
public void addValidators(IInputValidator[] validators);
三个方法的的实现是一致的.
请问有什么办法可以避免在ValidatableComposite和ValidatableDialog重复实现那三个方法?
分享到:
相关推荐
在Java中,接口是一种强制实现特定方法的合同,它可以被类来实现,以确保类具备某些预定义的行为。 标题提到的是通过继承接口和多态来实现矩形类(Rectangle)和正方形类(Square)对对角线长度计算的功能。接口`...
- **抽象类**:适用于定义共享行为和状态的场景,如定义一个基础类来共享某些通用行为。 - **接口**:适用于定义行为规范的场景,如定义一组操作规则而不关心具体实现细节。 5. **灵活性**: - **抽象类**:提供...
1. **多继承支持:** 一个类可以实现多个接口,解决了Java不支持多重继承的问题。 2. **完全抽象:** 接口中所有的方法都是抽象的,不允许包含任何实现细节。 3. **常量定义:** 接口中的变量默认是`public static ...
- 一个类可以实现多个接口,支持多重继承的概念。 - 接口中的方法默认是没有实现的,但自Java 8起,接口可以包含默认方法和静态方法。 **应用场景**: - 当需要定义一组行为规范,但不确定谁会实现这些规范时,可以...
接口与抽象类是面向对象编程中的两个核心概念,它们都是为了实现代码的重用性和灵活性而设计的。本文将详细探讨接口与抽象类的区别,并结合实际编程场景来分析何时使用接口、何时选择抽象类。 #### 二、接口的基本...
然而,`final`和`abstract`关键字不能同时用于同一个类或方法,因为它们的性质相互矛盾:`final`类不能被继承,而`abstract`类必须被继承;`final`方法不能被重写,而`abstract`方法必须被重写。 接下来,我们讨论...
例如,如果一个类实现了`IPerson`接口,那么这个类就必须包含一个名为`Eat()`的方法,以符合“人能吃饭”的自然规则。通过这种方式,接口确保了实现它的类具有共同的基本行为,从而使得其他类可以基于这些共有的行为...
3. 类可以多重实现接口,但只能单继承(直接继承)一个抽象类或类。 4. 接口支持回调,而继承通常不支持这一特性。 5. 抽象类不能被密封,这意味着它的子类可以继续被继承。 6. 实现接口的方法默认是非虚的,而抽象...
在这个例子中,`jieKou` 接口定义了两个方法 `add()` 和 `delte()`,而 `test_Interfacel` 类实现了这两个方法。这表明任何实现了 `jieKou` 接口的对象都将拥有添加和删除的功能,但具体实现细节由各自类来决定。 #...
1. **模板方法模式**:通常使用抽象类来实现模板方法模式,其中抽象类定义了一个算法骨架,允许子类提供特定步骤的具体实现。 2. **策略模式**:在策略模式中,接口用于定义一组可互换的算法或行为,客户端可以选择...
在编程世界中,抽象类和接口是面向对象编程(OOP)中的两个核心概念,它们为代码设计提供了灵活性和可扩展性。在这个“抽象类及接口的实例及测试”项目中,我们可以通过源代码和UML(统一建模语言)图来深入理解这两...
两个Fragment可以通过共享同一个ViewModel来进行数据交换。 6. **使用MediatorFragment**:创建一个中间的MediatorFragment,让它来协调两个Fragment的通信。这种方式可以避免直接耦合,但增加了代码复杂性。 在...
1. 实现方式:类可以实现多个接口,但只能继承一个抽象类。接口提供的是横向扩展,抽象类提供的是纵向继承。 2. 内容:接口只能包含方法签名,而抽象类可以包含字段、构造函数、方法等成员。 3. 默认访问修饰符:...
例如,`javax.ejb.SessionBean` 是一个接口,定义了Session Bean必须实现的一些基本方法,而EJB的某些实现可能提供抽象类,如`AbstractSessionBean`,来简化开发过程。 标签“源码”和“工具”提示我们,理解这些...
使用抽象类的主要目的是定义一个公共的接口,强制子类必须实现某些方法,从而确保所有子类都有相同的行为特征。 例如,在面向对象的设计中,假设有一个"车辆"的抽象类,它可能包含抽象方法如"启动"和"停止",而具体...
在编程领域,接口和抽象类是面向对象设计中的两个关键概念,它们用于实现代码的抽象和多态性。本文将详细探讨这两个概念以及它们在实际编程中的应用。 首先,我们来理解“接口”。接口在Java、C#等编程语言中扮演着...
在软件开发中,抽象类和...如果需要共享代码或强制实现某些方法,那么抽象类是好选择;若要实现多重继承效果或定义一组方法的契约,接口更为合适。理解并灵活运用这些概念,对于编写高质量的、易于维护的代码至关重要。
- 当只需要一个对象实例,并且这个对象只用到一次时,可以使用匿名类创建,比如直接在实现接口的地方创建一个匿名类对象。 在实际编程中,正确理解和使用抽象类和接口能有效提高代码的灵活性、可维护性和可扩展性...