抽象工厂模式

定义

提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。

package designModel.AbstractFactory;

public class AbstractFactory {

    public static void main(String[] args) {

        IDatabaseUtils iDatabaseUtils =new OracleFataBaseUtils();

        IConnection connection =iDatabaseUtils.getConnection();

        connection.connect();

        ICommand command =iDatabaseUtils.getCommand();

        command.command();

    }

}

//      变化:mysql,oracle

/**

* mysql建立连接方法

*/

class MysqlConnection implements IConnection{

    @Override

    public void connect() {

        System.out.println("mysql数据库已建立连接。。。");

    }

}

class OracleConnection implements IConnection{

    @Override

    public void connect() {

        System.out.println("oracle数据库已建立连接。。。");

    }

}

/**

*  oracle执行命令方法

*/

class  OracleCommand implements ICommand{

    @Override

    public void command() {

        System.out.println("oracle执行命令吧");

    }

}

/**

*  mysql执行命令方法

*/

class MysqlCommand implements ICommand{

    @Override

    public void command() {

        System.out.println("mysql执行命令吧!");

    }

}


/**

*  mysql抽象工厂实现类

*/

class MysqlDataBaseUtils implements IDatabaseUtils{

    @Override

    public IConnection getConnection() {

        return new MysqlConnection();

    }

    @Override

    public ICommand getCommand() {

        return new MysqlCommand();

    }

}

/**

*   oracle抽象工厂实现类

*/

class OracleFataBaseUtils implements IDatabaseUtils{

    @Override

    public IConnection getConnection() {

        return new OracleConnection();

    }

    @Override

    public ICommand getCommand() {

        return new OracleCommand();

    }

}

interface IConnection{

    void connect();

}

interface  ICommand{

    void command();

}

interface IDatabaseUtils{

    IConnection getConnection();

    ICommand getCommand();

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 源码地址 使用场景 一个对象族有相同的约束时可以使用此模式。 例如:Android、iOS 都有短信软件和拨号软件...
    yangMr阅读 435评论 0 1
  • 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其...
    陈吉思_汗阅读 95评论 0 0
  • 第八章 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工...
    会Coding的猪崽阅读 161评论 0 0
  • 概念 围绕一个超级工厂创建其他工厂。此超级工厂又称为其他工厂的工厂。属于创建型模式。 使用场景 QQ换肤(一整套一...
    意大利大炮阅读 206评论 0 0
  • 转:http://www.runoob.com/design-pattern/abstract-factory-p...
    right_33cb阅读 207评论 0 0