我有一个名为
我对初始化有些困惑。
所以我应该使用方法1还是2?
方法1:
方法2:
在上述用例中,哪种方法更受欢迎?
Q2:在类Initializer中有另一个实用方法。我们称其为getAttr,它使用这两个映射。在这种情况下,哪种方法更好?
Q3 如果我希望多个线程使用这些解析器,并假设我选择了第一种方法,则每个线程都会进行不必要的初始化。这真的让我感到困惑。
我有点困惑。
假设Animal是Tiger和Lion的基类。每个Animal都有年龄和腿的数量作为成员。拥有Animal类而不是在每个Animal类中拥有年龄和腿的数量是有意义的。因此,超类在这里获胜。难道不是吗?如果是这样,我的场景也类似。
Parser
的接口。两个类 ParserA
和 ParserB
实现了 Parser
接口。public interface Parser{
public void initialize();
public int Parse(byte[] data);
}
我对初始化有些困惑。
ParserA
初始化了两个Maps
。 ParserB
也初始化了两个Maps
,但是数据不同。这些Maps
是用常量数据初始化的,意味着不是在运行时生成的。所以我应该使用方法1还是2?
方法1:
class Initializer{
//have two maps as member
}
Class ParserA extents initializer implements Parser{
public int Parse(byte[] data){
}
public void initialize(){
//Initialize those maps
}
}
Similarly for class B
方法2:
class Constants{
//Static initializer of four maps[two for ParserA, two for ParserB]
}
Class ParserA implements Parser{
public int Parse(byte[] data){
}
public void initialize(){
//Constants.map1 likewise use.
}
}
Similarly for class B
在上述用例中,哪种方法更受欢迎?
Q2:在类Initializer中有另一个实用方法。我们称其为getAttr,它使用这两个映射。在这种情况下,哪种方法更好?
Q3 如果我希望多个线程使用这些解析器,并假设我选择了第一种方法,则每个线程都会进行不必要的初始化。这真的让我感到困惑。
我有点困惑。
假设Animal是Tiger和Lion的基类。每个Animal都有年龄和腿的数量作为成员。拥有Animal类而不是在每个Animal类中拥有年龄和腿的数量是有意义的。因此,超类在这里获胜。难道不是吗?如果是这样,我的场景也类似。