简介
在之前的简单工厂里面有两个问题,第一个是switch case的使用会使代码随着类的增多而增多,不便于后面的维护(试想你看着代码里面,一堆的case…),第二个问题是,工厂返回的是指定的类,返回指定类为什么不太友好呢?因为这就相当于,我需要知道你是谁才知道你能干什么(如果现在还不懂什么意思的话,不要着急哈,后面看了我代码的实现就知道了)。
假设有个项目经理
对,这次来假设,有个项目经理,找你做一个对SqlServer数据库进行读写的基本程序,然后你就想,项目经理这种比女朋友还多变的人啊,他叫我写一个用SqlServer的,可能我都还没写完,就跟我说要改成使用Mysql的数据库,那我不就又白写了。这个时候突然灵光一现,我不是才学完简单工厂模式,终于可以用上了,拍了几下胸口(虽然我也不知道为什么写代码要先拍几下胸口),几秒钟后,就写出来了。
public abstract class DBBase
{
public abstract void Query();
}
public class SqlServerDB : DBBase
{
public override void Query()
{
Console.WriteLine("从server中查询");
}
}
public class MysqlDB : DBBase
{
public override void Query()
{
Console.WriteLine("从Mysql查询");
}
}
public class DBFactory
{
public static DBBase