カリキュラムデザインパターンデザインパターンは、簡潔3-11合成多重原理をコーディング

1教室のコンセプト

2コードのチュートリアル

2.1  反例

2.2  正例

 

1教室のコンセプト

2コードのチュートリアル

2.1  反例

 クラス関係:

 

テストカテゴリ:

パッケージcom.geely.design.principle.compositionaggregation。

パブリック クラスTestBizDao {
     公共 静的 ボイドメイン(文字列[]引数){ 
        BizDaoNegative bizDaoNegative = 新しいBizDaoNegative()。
        bizDaoNegative.getDBConnection(); 
    } 

//     パブリック静的無効メイン(文字列[] args){
 //         BizDao bizDao =新しいBizDao()。
////         のDBConnectionのDBConnection =新しいMySqlConnectionに()。
////         bizDao.setDbConnection(のDBConnection)。
//         のDBConnectionのDBConnection =新しいのOracleConnection();
//        bizDao.setDbConnection(のDBConnection)。
//         bizDao.handleBiz();
//     } 
}

 

DAOカテゴリ:

パッケージcom.geely.design.principle.compositionaggregation。

パブリック クラス BizDaoNegativeは延びDBConnectionNegative { 

    @Override 
    公共 ボイドgetDBConnection(){
         スーパー.getDBConnectionを(); 
    } 
}

 

接続タイプを取得します:

パッケージcom.geely.design.principle.compositionaggregation。

パブリック クラスDBConnectionNegative {
     公共 ボイドgetDBConnection(){ 
        System.out.printlnは( "连接MySQLの打开" )。
    } 
}

 

印刷結果:

"C:\プログラムファイル\のJava \ jdk1.6.0_43 \ビン\ののjava.exe"「-javaagent:D:\ Javaの\ devolopKitの\アイデア\ anZh \のIntelliJ IDEA Community Editionを2018年1月4日のlib \ \ idea_rt.jar = 9805 :D:\ Javaの\のdevolopKitの\アイデア\ anZhのIntelliJ IDEA Community Editionの\ binに2018年1月4日\ "の-Dfile.encoding = UTF-8 -classpath" C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ charsets.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ deploy.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ extに\ dnsns.jar; C: \プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ extに\ localedata.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ extに\ sunjce_provider.jar; C:\プログラムファイル\ Javaの\ jdk1.6.0_43 \ JRE \ libに\ extに\ sunmscapi.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ javaws.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ jce.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\のjsse.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\管理エージェント.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ plugin.jar; C:\プログラムファイル\のJava \ jdk1.6.0_43 \ JRE \ libに\ resources.jar; C:\プログラムファイル\のJava \ jdk1。 6.0_43 \ JRE \ libに\ rt.jarの; F:\ xiangmu3 \新\アイデア\出\生産\のdesign_pattern」com.geely.design.principle.compositionaggregation.TestBizDao 
打开のMySQL连接

終了コードで終了プロセス 0

 

2.2  正例

クラス図:

 

テストカテゴリ:

package com.geely.design.principle.compositionaggregation;

public class TestBizDao {
//    public static void main(String [] args){
//        BizDaoNegative bizDaoNegative = new BizDaoNegative();
//        bizDaoNegative.getDBConnection();
//    }

    public static void main(String [] args){
        BizDao bizDao = new BizDao();
        DBConnection dbConnection = new MySqlConnection();
//        bizDao.setDbConnection(dbConnection);
//        DBConnection dbConnection = new OracleConnection();
        bizDao.setDbConnection(dbConnection);
        bizDao.handleBiz();
    }
}

 

dao类:

package com.geely.design.principle.compositionaggregation;

public class BizDao {
    private DBConnection dbConnection;

    public void setDbConnection(DBConnection dbConnection) {
        this.dbConnection = dbConnection;
    }

    public void handleBiz(){
       dbConnection.getConnection();
    }
}

 

获取连接抽象类:

package com.geely.design.principle.compositionaggregation;

public abstract class DBConnection {
    public abstract void getConnection();
}

 

获取Mysql连接类:

package com.geely.design.principle.compositionaggregation;

public class MySqlConnection extends DBConnection{
    @Override
    public void getConnection() {
        System.out.println("打开MySql连接");
    }
}

 

获取Oracle连接类:

package com.geely.design.principle.compositionaggregation;

public class OracleConnection extends DBConnection{
    @Override
    public void getConnection() {
        System.out.println("打开oracle连接");
    }
}

 

 打印结果

"C:\Program Files\Java\jdk1.6.0_43\bin\java.exe" "-javaagent:D:\java\devolopKit\idea\anZh\IntelliJ IDEA Community Edition 2018.1.4\lib\idea_rt.jar=12553:D:\java\devolopKit\idea\anZh\IntelliJ IDEA Community Edition 2018.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.6.0_43\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_43\jre\lib\rt.jar;F:\xiangmu3\Xin\Idea\out\production\design_pattern" com.geely.design.principle.compositionaggregation.TestBizDao
打开MySql连接

Process finished with exit code 0

 

おすすめ

転載: www.cnblogs.com/1446358788-qq/p/11228029.html