zoukankan      html  css  js  c++  java
  • 设计模式-抽象工厂模式

    抽象工厂模式,定义工厂接口,生产某一种类型的配件全部由某一家工厂所提供,解决不同工厂的兼容性问题。

    /**
     * 抽象工厂模式
     */
    public class AbstratFactoryMethod {
        public static void main(String[] args) {
         Application application = new ConcreteProductA();
    // Application application = new ConcreteProductA1();
    Product product = application.getObject();
    product.method1();
    } } //数据库连接接口,抽象工厂 interface IDatabaseUtils { IConnection getConnection(); ICommand getCommand(); } //连接接口 interface IConnection { void connect(); } //指令接口 interface ICommand { void command(); } //实现类1 class MysqlConnection implements IConnection { @Override public void connect() { System.out.println("mysql connect"); } } //实现类2 class OracleConnection implements IConnection { @Override public void connect() { System.out.println("Oracle connect"); } } //实现类1 class MysqlCommand implements ICommand { @Override public void command() { System.out.println("mysql command"); } } //实现类2 class OracleCommand implements ICommand { @Override public void command() { System.out.println("Oracle command"); } } //抽象工厂实现1 class MysqlDataBaseUtils implements IDatabaseUtils { @Override public IConnection getConnection() { return new MysqlConnection(); } @Override public ICommand getCommand() { return new MysqlCommand(); } } //抽象工厂实现1 class OracleDataBaseUtils implements IDatabaseUtils { @Override public IConnection getConnection() { return new OracleConnection(); } @Override public ICommand getCommand() { return new OracleCommand(); } }

      

  • 相关阅读:
    MySQL中 INSERT INTO 和 SELECT 的组合使用
    Chrome浏览器如何强制刷新
    html中点击a链接不跳转
    PHP strstr() 和 strrchr() 详解
    Mac 在当前目录打开终端
    PHP 函数相关
    ARM、DSP、FPGA的技术特点和区别
    ARM版本系列及家族成员梳理
    【重磅推荐】嵌入式Linux经典书单(部分含视频)
    Makefile的引入及规则
  • 原文地址:https://www.cnblogs.com/chenfx/p/14779194.html
Copyright © 2011-2022 走看看