必须创建一个抽象类,比如Part。但是有两种类型的部件,
第1部分:这部分有3个实例变量,内部,外部,中间
第2部分:这部分有2个实例变量,top,bottom
最后,两个Part都在扩展一个抽象类Part,所以最后,在Java中它就像这样
abstract Class Object{
public abstract String toString();
}
abstract class Part{
abstract void print();
}
Class Part1 extends Part1{
List <Object> inside = new ArrayList <Object> ();
List <Object> outside = new ArrayList <Object> ();
List <Object> medium = new ArrayList <Object> ();
void print(){
//go through all the list and print the object
}
}
Class Part1 extends Part2{
List <Object> top = new ArrayList <object> ();
List <Object> bottom = new ArrayList <object> ();
void print(){
//go through all the list and print the object
}
}
我的问题是我可以将哪种设计模式应用于Part的创建,我仍然是模式中的新手,对于我来说它是构建器,因为我必须提出具有不同表示的相同类型的Object。但对象并不复杂!!
答案 0 :(得分:0)
请参阅http://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns#Creational_Patterns。
我更喜欢工厂模式用法或原型:
原型示例:
Class PartsFactory
{
Part createPart(string partType)
{
if (partType.equals("Type1")) return new Part1();
if (partType.equals("Type2")) return new Part2();
return null;
}
}
工厂示例:
interface PartsFactory
{
Part createPart();
}
Class Parts1Factory implements PartsFactory
{
Part createPart()
{
return new Part1();
}
}
Class Parts2Factory implements PartsFactory
{
Part createPart()
{
return new Part2();
}
}