首页 > 解决方案 > 适配器模式还是组合?

问题描述

我想以更清洁的方式使用来自 gitHub 的外部库

public class Sgtin { full of fields and methods including encode and decode }

在我的类解码器中,我只想从几个对象中实现的两个方法

public class Decoder {

private static final Sgtin sgtin = new Sgtin();

public static String encode(String ean, Long serialNumber, int filterValue) {
    return sgtin.encode(ean, serialNumber, filterValue);
}

public static Sgtin decode(String cpe) {
    return sgtin.decode(cpe);
}

}

我想在 mthod decode 中隐藏 Sgtin 类(如果我要对它进行任何修改,我不必更改原始类)所以为了做到这一点,我创建了一些其他对象(解码器)并将 Sgtin 映射到它?最好的方法是什么?

标签: javaoop

解决方案


您可以更改您的Decoder类以实现单例模式。要么你在那里遗漏了一些代码,因为它实际上应该抛出一个 NPE,因为它sgtin没有被初始化。

但是你的方法很好。


推荐阅读