`

用适配器模式解决接口的不足

 
阅读更多

解决的办法是:在EntityModel中不用 implements Ibodyinfo。而是实现getAdapter方法:

public Object getAdapter(Class adapter){
        if(adapter==Ibodyinfo.class)
            return new BodySource(this);
        return null;
    }

其中BodySource的代码如下;

package com.wjy.understandinterface;

public class BodySource implements Ibodyinfo {
    EntityModel model;
    public BodySource(EntityModel model) {
        this.model = model;
    }
    @Override
    public double getHeight() {
        // TODO Auto-generated method stub
        return model.height;
    }

    @Override
    public double getWeight() {
        // TODO Auto-generated method stub
        return model.weight;
    }

}

这样就可以在Main函数中这样获得height和weight信息了:

 

Ibodyinfo bodyinfo=(Ibodyinfo)((new EntityModel("wangjiyuan",22,177.00,74.00)).getAdapter(Ibodyinfo.class));    
bodyinfo.getHeight();
bodyinfo.getWeight();

注意以上的 (new EntityModel("wangjiyuan",22,177.00,74.00)).getAdapter(Ibodyinfo.class)执行之后 会返回一个 BodySource的对象,而BodySource实现了Ibodyinfo接口,所以可以将其转化成Ibodyinfo,类似于 接口引用指向实现其的类的对象。相当于把 处理height和weight的代码放在了BodySource类中,而BodySource和EntityModel是聚合关系,通过

return new BodySource(this);中的this将EntityModel对象传给了BodySource中聚合的EntityModel引用。

分享到:
评论

相关推荐

    设计模式之适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一...在实际编程过程中,适配器模式是解决接口不匹配问题的一个有效工具。

    设计模式 - 适配器模式(C++实例)

    适配器模式是一种常用的设计...在C++中,无论是类适配器还是对象适配器,都能有效地解决接口不兼容的问题,提高代码的可复用性和可维护性。通过深入研究和实践,我们可以更好地掌握这一模式,并在实际项目中灵活运用。

    JAVA设计模式(抽象类与适配器模式)

    类适配器模式通过继承目标接口和适配者类来实现,而对象适配器模式则是通过组合适配者类来实现。适配器模式常用于旧系统改造或者第三方库的接口调整,它降低了系统的耦合度,增加了系统的灵活性。 以一个具体的例子...

    java设计模式之适配器模式

    在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。本文将深入探讨适配器模式的概念、类型、优点和如何在Java中实现。 一、适配器模式概念 适配器...

    java 动态代理模式 适配器模式

    在Java中,动态代理模式主要依赖于Java的反射API和InvocationHandler接口,而适配器模式则用于解决不同接口之间的兼容问题。 动态代理模式的核心在于能够在运行时动态创建一个实现指定接口的代理类,这个代理类可以...

    适配器模式案例代码

    在这个案例中,我们关注的是如何通过适配器模式解决实际编程问题。文章《适配器模式案例代码》提供了具体的实现示例,链接指向了CSDN博主hailushijie的一篇文章,虽然具体内容无法在此直接展示,但我们可以深入探讨...

    Java设计模式之适配器模式

    适配器模式是解决接口不兼容问题的有效手段,尤其在集成第三方库或模块时非常有用。通过使用适配器,我们可以避免对现有系统的大量修改,同时也提高了代码的复用性和可维护性。无论是类适配器还是对象适配器,选择...

    设计模式系列之适配器模式

    总的来说,适配器模式是软件设计中解决接口不兼容问题的重要工具,它使得不同组件之间的协同成为可能,提高了代码的复用性和灵活性。在面对接口不兼容的挑战时,适配器模式提供了一种优雅的解决方案。

    java中适配器模式案例

    总的来说,适配器模式是软件设计中的一种重要工具,它帮助我们解决了不同组件间的接口不兼容问题,使系统更加灵活和可扩展。通过学习和实践适配器模式,开发者可以更好地应对复杂的软件集成挑战。

    设计模式之--适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    适配器模式demo源码

    此外,适配器模式也是解决遗留系统与新系统之间接口不匹配问题的有效手段。在阅读和分析这个源码时,可以关注适配器类如何通过方法映射和调用来实现接口的转换,以及如何在不修改原有类的基础上,实现功能的扩展。 ...

    适配器模式源代码

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个源代码实例中,我们看到的是如何通过适配器模式来实现不同对象之间的协作,使得原本无法直接交互的系统组件...

    uml 文档 适配器模式

    总之,适配器模式是解决接口不兼容问题的一种有效策略,它通过创建适配器类来协调不同接口之间的通信,使得系统能够更加灵活地组合和复用各种组件。在UML文档中,适配器模式的表示有助于理解系统中类和接口间的依赖...

    23种设计模式--适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,这种模式常被用来解决旧系统与新...理解并熟练运用适配器模式,能帮助开发者解决接口不兼容的问题,提高代码的可维护性和可扩展性。

    适配器模式实例之算法适配

    适配器模式是一种被广泛应用的设计模式,它允许将...总之,适配器模式是解决接口不兼容问题的一种有效手段,它让原本不兼容的接口可以顺利协作,提高了软件系统的可复用性和可扩展性,是软件设计中不可或缺的一种模式。

    适配器模式代码demo

    总之,适配器模式是解决接口不兼容问题的有效工具,通过合理的适配,可以使不同的组件协同工作,提高代码的可读性和可维护性。在"Adapter"文件的代码示例中,我们可以学习如何实际应用这一模式,理解其工作原理和优...

Global site tag (gtag.js) - Google Analytics