/**
*
*/
package factorymode;
/**
* @author Bingo.Ge
* @date 2020年5月8日
*/
public class AbstractFactoryTest {
/**
* @param args
*/
public static void main(String[] args) {
IDatabaseUtils iDatabaseUtils = new MysqlDatabaseUtils();
IConnection connection = iDatabaseUtils.getConnection();
connection.connect();
ICommand command = iDatabaseUtils.getCommand();
command.command();
}
}
interface IConnection {
void connect();
}
interface ICommand {
void command();
}
interface IDatabaseUtils {
IConnection getConnection();
ICommand getCommand();
}
class MysqlConnection implements IConnection {
@Override
public void connect() {
System.out.println("mysql connected!");
}
}
class MysqlCommand implements ICommand {
@Override
public void command() {
System.out.println("mysql command!");
}
}
class MysqlDatabaseUtils implements IDatabaseUtils {
@Override
public IConnection getConnection() {
return new MysqlConnection();
}
@Override
public ICommand getCommand() {
return new MysqlCommand();
}
}