通过工厂方法实现字母表是否有意义?
示例:
public class Alphabet
{
public Alphabet(image picture, string name)
{
_picture = picture;
_name = name;
}
public void Show()
{
_picture.Show();
}
}
public LetterA: Alphabet
{
public LetterA() : Alphabet("lttrA.png", "Letter A"){}
}
....
public LetterZ: Alphabet
{
public LetterZ() : Alphabet("lttrZ.png", "Letter Z"){}
}
使用:
Alphabet ltr1 = new LetterA();
要求:图片永远不会改变,未来不会添加方法
由于
答案 0 :(得分:0)
Factory方法在每次调用时提供一个类的新实例。在您的情况下,不需要创建多个实例,您可以为字母表创建枚举。
public enum Alphabet
{
A(/*some image*/, "A"),
B(/*some image*/, "B"),
C(/*some image*/, "C"),
D(/*some image*/, "D");
// ... and so on till Z
private final String name;
private final Image picture;
private Alphabet(Image picture, String name)
{
this.picture = picture;
this.name = name;
}
public void Show()
{
picture.Show();
}
}
答案 1 :(得分:0)
为什么要26个子类?如果我理解你想要从字母表字母映射到图像文件。一张简单的地图就足够了。也许是一种方法来处理对该地图的访问,检查是否只传递了字母,将它们标准化(大写),...