Design Pattern用于创建类的多个实例而不传递类型

时间:2014-08-04 23:49:45

标签: design-patterns types factory-pattern

我有一个父类和子类用于特定类型的DBDrivers。我想要一种方法来创建一个特定类型的DBDriver的多个实例,而不将类型(String)传递给实例化实例的类。类型/类型将在属性文件中提及。现在,我正在从属性文件中读取驱动程序的类型,但我无法决定一个模式,它将帮助我在更高级别的类中创建DBDriverFactory类,并能够在较低/辅助类上创建多个实例而不传递子类的驱动程序的类型(String)。

这是伪代码:

班主任{

ClassA obj = new ClassA();

obj.initialize();

}

class ClassA {

// I want to have a factory class obj instantiated  in this ClassA
//which can be used create the instance in InnerClass run() method 


public void initialize(){

    for loop()
    {
        //create InnerClass thread and run 
    }
}


class InnerClass extends thread{

    public void run(){
        //create a instance of the Driverclass of driver type 'k'
        //something like factoryClass.createDriver(), should return a driver, 
        //without knowing the type of the driver.
    }
}

}

抽象类DriverClass {     ....... }

SQLDriver扩展DriverClass { }

PostgresDriver扩展DriverClass { }

1 个答案:

答案 0 :(得分:0)

您只有两个选择:

  • 您可以将类型作为参数传递给更高级别的某个类。但你不想要那个。

  • 或者更高级别的班级具有具体的低级班级知识。这违反了Dependency Inversion Principle

为什么不想传递参数?