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