問題を解決するために、プロセス指向の機能を理解するためにコンピュータを使用するための直感的な方法は、
カップリングの問題は、発生し
、短期的な解決策を
プログラムを維持し、拡大することは容易ではありませんように。
オブジェクト指向のために、カプセル化、継承によって、多型は、カップリング手順を削減する、プログラミングのアイデアを適用する必要があります
修正し、再利用することが容易になり、拡張モードのプログラム設計の柔軟性を利用します。
より良いプログラミング習慣や思考を開発するために、
学習やデザインパターンを使用して起動を開始し
、内側に、デザインパターンを研究する計画がある願って、そして徐々に訓練を受け、訓練を受け、訓練を受けたから学びました!
シンプルなファクトリパターン:
特別なクラスを作成し、それが結合を低減するために、ビジネスロジックとインターフェース・ロジックの分離を達成するために、例異なるクラスのオブジェクトを作成します。
第二に、例えば、単純な電卓、達成するために:
抽象基本クラスの演算子を作成するための
抽象クラスを継承し、具体的な運用方法に抽象クラスを達成するため
の簡単な計算方法ファクトリクラスによって、簡単なファクトリクラスを作成するために、あなたが選択したクラスを作成する必要があり、状況に応じて選択されますオブジェクト。
抽象 クラスの操作{ プライベート ダブル numberA = 0 ; プライベート ダブル numberB = 0 ; 公共 ダブルgetNumberA(){ 戻りnumberAと、 } 公共 ボイド setNumberA(ダブルnumberA){ この .numberA = numberA。 } 公共 ダブルgetNumberB(){ 戻りnumberBと、 } 公共 ボイド setNumberB(ダブルnumberB){ この .numberB =numberB; } 抽象 二重のgetResult()はスロー例外。 } / ** *继承抽象类、实现一些具体的运算 * / クラスの追加は延び操作は{ @Override 二重のgetResult(){ 戻り getNumberA()+ getNumberBを(); } } クラス以下で延びている操作は{ @Override 二重のgetResult(){ 戻り getNumberA() - getNumberBを(); } } クラスムルは延び動作{ @Override 二重のgetResult()がスロー例外{ 場合(getNumberB()!= 0 ){ 戻り getNumberA()/ getNumberBを(); } 他{ スロー 新しい例外( "除数为零、不を合法" ); } } } パブリック クラスし、SimpleFactory { パブリック操作chooseFunc(文字列動作){ 操作operation = NULL ; スイッチ(動作){ 場合 "+" : 動作= 新しい追加(); 破ります; ケース " - " : 操作 = 新レス(); 破ります; ケース「/」: 動作 = 新しいムル()。 破ります; デフォルト: するSystem.out.println( "继续扩展方法吧" ); 破ります; } 戻り操作; } } クラスのテスト{ 公共の 静的 ボイドメイン(文字列[]引数)をスロー例外{ ダブル numberA = 23 。 ダブル numberB = 22 ; 文字列[]動作 = { "+"、 " - "、 "/" }。 し、SimpleFactoryし、SimpleFactory = 新しいし、SimpleFactory(); 操作オペレーション = simpleFactory.chooseFunc(動作[2 ])。 operation.setNumberA(numberA)。 operation.setNumberB(numberB)。 System.out.println(operation.getResult())。 } }