对象创建的设计模式

时间:2013-02-11 22:15:50

标签: java design-patterns

必须创建一个抽象类,比如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。但对象并不复杂!!

1 个答案:

答案 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();
    }
}