實驗一 工廠方法和抽象工廠模式設計實驗及其Java實現


開課實驗室:                  開課時間: 2016年**月**日            實驗報告:    年  月   日 

學院名稱

信息工程學院

年級、專業、班

 

學號

 

姓名

 

同組姓名

 

課程名稱

軟件架構

實驗項目名稱

實驗一 工廠方法和抽象工廠模式設計實驗

指導教師

 

實驗類型

驗證         綜合         設計          創新  

成績

 

教師評語

 

                                                     教師簽名:

                                                                 年  月 

                         

一、實驗目的

通過本實驗的學習,了解軟件體系結構與軟件體系設計的基本思想,掌握工廠方法、抽象工廠模式等軟件體系結構的設計與實現方法,利用Rose軟件繪制軟件體系的靜態結構圖,並利用面向對象的程序設計語言模擬實現工廠方法、抽象工廠模式,為今后軟件開發與設計的學習奠定基礎。

二、實驗環境

    實驗儀器為PC機一台,安裝StarUML軟件和MyEclipse軟件。

三、實驗內容

1、熟悉StarUML軟件的界面和基本操作。

2、掌握StarUML軟件的基本使用方法,能夠運用StarUML軟件繪制工廠方法、抽象工廠模式的UML類圖和模式結構圖。

3、學習利用java語言實現工廠方法、抽象工廠模式,並確保代碼運行正確無誤。

四、實驗步驟

1、熟悉StarUML的常用功能。

2、使用StarUML繪制類圖;

3、工廠方法模式設計與實現:“海爾工廠(Haier)生產海爾空調(HaierAirCondition),美的工廠(Midea)生產美的空調(MideaAirCondition) ”。使用Rose繪制工廠方法模式結構圖,並運用面向對象編程語言實現該模式。

4、抽象工廠模式設計與實現:“電腦配件生產工廠生產內存、CPU等硬件設備,這些內存、CPU的品牌、其型號並不一定相同。”根據下面的“產品等級結構-產品族”示意圖,使用抽象工廠模式實現電腦配件生產過程並繪制相應的類圖,並運用面向對象編程語言實現該模式。

工廠方法模式設計與實現:

 

package AIR;

public interface AIR

{

      void work();

}

package AIR;

public class HaierAIR implements AIR

{

      public void work()

      {

             System.out.println("HaierAirCondition working!");

      }

}

package AIR;

public class MideaAIR implements AIR

{

      public void work()

      {

             System.out.println("MideaAirCondition working!");

      }

}

package AIR;

public interface AIRFactory

{

      AIR produceAIR();

}

package AIR;

public class HaierAIRFactory implements AIRFactory

{

      public HaierAIR produceAIR()

      {

             System.out.println("HaierAirCondition produced!");

             return new HaierAIR(); 

      }

}

package AIR;

public class MideaAIRFactory implements AIRFactory

{

      public MideaAIR produceAIR()

      {

             System.out.println("MideaAirCondition produced!");

             return new MideaAIR();

      }

}

package AIR;

public class Test {

       public static void main(String[] args) {

           AIRFactory AIRfactory=new HaierAIRFactory();

           AIR air=AIRfactory.produceAIR();

          

           AIRfactory=new MideaAIRFactory();

           air=AIRfactory.produceAIR();

       }

}

 運行結果:

 

抽象工廠模式設計與實現:

package Computer;

 

public interface CPU {

       void discribe();

 

}

package Computer;

 

public interface RAM {

       void discribe();

 

}

package Computer;

 

public interface ComputerAccessoriesFactory {

              CPU produceCPU();

              RAM produceRAM();

 

}

package Computer;

 

public class PcCPU implements CPU

{

       public void discribe()

       {

              System.out.println("This is produce the PC_CPU");

              }

}

package Computer;

 

public class PcRAM implements RAM

{

       public void discribe()

       {

              System.out.println("PcRAM");

       }

}

package Computer;

 

public  class PcFactory implements ComputerAccessoriesFactory

{

       public PcCPU produceCPU() {

              System.out.println("PC_CPU produced! >_<");

              return new PcCPU();

       }

 

       public PcRAM produceRAM() {

              System.out.println("PC_RAM produced! >_<");

              return new PcRAM();

       }

}

package Computer;

 

public class MacCPU implements CPU

{

       public void discribe()

       {

              System.out.println("This is produce the Mac_CPU");

       }

}

package Computer;

 

public class MacRAM implements RAM

{

       public void discribe()

       {

              System.out.println("MacRAM");

       }

}

package Computer;

 

public  class MacFactory implements ComputerAccessoriesFactory{

       public MacCPU produceCPU() {

              System.out.println("MacCPU produced! ~_~");

              return new MacCPU();

       }

 

       public MacRAM produceRAM() {

              System.out.println("MacARM produced! ~_~");

              return new MacRAM();

       }

}

package Computer;

 

public class Test {

 

       public static void main(String[] args) {

              // TODO Auto-generated method stub

              ComputerAccessoriesFactory a = new PcFactory();

              ComputerAccessoriesFactory b = new MacFactory();

        CPU cpu = a.produceCPU();

        RAM ram = b.produceRAM();

        cpu.discribe();

        ram.discribe();

       }

}

 運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM