当前位置: 首页 > 面试题库 >

将一个类转换为另一个类的设计模式

翟兴邦
2023-03-14
问题内容

我有一个名为GoogleWeather的类,我想将其转换为另一个CustomWeather类。

有没有可以帮助您转换类的设计模式?


问题答案:

需要做出一个关键决定:

您是否需要转换生成的对象以反映对源对象的将来更改?

如果您不需要这样的功能,那么最简单的方法是将实用程序类与静态方法一起使用,这些静态方法根据源对象的字段创建新对象,如其他答案所述。

另一方面,如果您需要转换后的对象来反映对源对象的更改,则可能需要使用一些适配器设计模式:

public class GoogleWeather {
    ...
    public int getTemperatureCelcius() {
        ...
    }
    ...
}

public interface CustomWeather {
    ...
    public int getTemperatureKelvin();
    ...
}

public class GoogleWeatherAdapter implements CustomWeather {
    private GoogleWeather weather;
    ...
    public int getTemperatureKelvin() {
        return this.weather.getTemperatureCelcius() + 273;
    }
    ...
}


 类似资料:
  • 我正在写一个库在Java,我需要转换(地图)一个模型到另一个,反之亦然。我所做的是实现了一个包含两个泛型类型的抽象转换器类,包含convertTo和convertFrom方法,并从它扩展了我的转换器。 但是对于特定的实现,我可能还需要其他对象来进行转换,我不知道什么是实现这些东西的最佳实践。我想过适配器和门面,但他们似乎不符合我的要求。有没有一个设计模式我可以用来做这个?提前谢谢你。

  • 有一些东西让我困惑,我没有找到关于VM规范的太多信息。这有点晦涩,如果有人能给我解释一下就好了。 这几行代码...... ..... 生成此输出: 浮动:无限 int: 2147483647 短:-1 字节:-1 、和是8位、16位和32位,带有两个补码和是32位和64位的IEEE 754(参见此处)。 根据我的理解,最大值的意味着尾数的所有位(52位)都切换到1。因此,转换为短或字节返回-1,即

  • 想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 我有一个A类像: 现在还有另一类X,例如: 现在,ClassY和ClassB是一样的,就像: 我想将A的实例复制到Y的新对象中。 我遇到过做类似映射的推土机,但那是如果值是原始的。我不知道如何映射它们中的类。尝试用java实现这一点。 我偶然发现了答案https://stackoverflow.com/a/36196948/2733350

  • 问题内容: 从源(s,s,s)读取图像的最便捷方法是: 但是,然后, 如何转换为格式? 问题答案: 您可以创建所需类型的新BufferedImage,然后在其上绘制原始图像,如下所示:

  • 问题内容: 我正在使用第三方存储系统,无论出于什么原因,无论输入什么内容,它都只会返回stdClass对象。因此,我很想知道是否有一种方法可以将stdClass对象转换/转换为给定类型的完整对象。 例如: 我只是将stdClass转换为数组并将其提供给BusinessClass构造函数,但是也许有一种方法可以还原我不知道的初始类。 注意:我对“更改存储系统”类型的答案不感兴趣,因为它不是关注点。请

  • 问题内容: 我想将一个类变量传递给另一个类,并使其成为该类的类变量。在以下情况下我该怎么做? 问题答案: 很难理解您正在问的问题,但这是一个可能的答案: 使B类成为A的子类: 如果重新声明为,则会出现一种情况,其中存在一个可以称为或的属性。(或在任一或刚刚…甚至作为或地方,并有类型和分别。) 如果您无法在和(或,以及一些包含声明的第三类)之间创建直接或子类型关系,那么您很不走运。他们无法共享声明。