<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      軟件工程學習日志2025.11.3

      軟件設計模式 - 建造者模式實戰
      ? 實驗來源:石家莊鐵道大學信息學院實驗5

      ? 實驗類型:模仿型實驗

      ? 核心目標:深入理解建造者模式的原理并掌握實際應用

      ?? 建造者模式核心理解

      模式動機

      建造者模式的核心價值在于將復雜對象的構建過程與其表示分離。在計算機組裝這個典型案例中:
      ? 復雜對象:計算機(包含CPU、內存、硬盤、主機等多個部件)

      ? 穩定過程:組裝流程固定(安裝CPU→內存→硬盤→主機)

      ? 不同表示:最終產品可以是筆記本或臺式機等不同形態

      模式優勢

      1. 構建過程封裝:指揮者統一管理組裝流程
      2. 產品表示靈活:相同構建過程可產生不同產品
      3. 符合開閉原則:新增計算機類型只需添加新建造者

      ??? 系統類圖設計

      classDiagram
      class Computer {
      -String cpu
      -String memory
      -String hardDisk
      -String mainFrame
      +setCPU(String cpu)
      +setMemory(String memory)
      +setHardDisk(String hardDisk)
      +setMainFrame(String mainFrame)
      +show()
      }

      class ComputerBuilder {
          <<abstract>>
          #Computer computer
          +buildComputer() void
          +buildCPU() void
          +buildMemory() void
          +buildHardDisk() void
          +buildMainFrame() void
          +getComputer() Computer
      }
      
      class LaptopBuilder {
          +buildCPU() void
          +buildMemory() void
          +buildHardDisk() void
          +buildMainFrame() void
      }
      
      class DesktopBuilder {
          +buildCPU() void
          +buildMemory() void
          +buildHardDisk() void
          +buildMainFrame() void
      }
      
      class Director {
          -ComputerBuilder builder
          +setBuilder(ComputerBuilder builder)
          +construct() Computer
      }
      
      ComputerBuilder <|-- LaptopBuilder
      ComputerBuilder <|-- DesktopBuilder
      ComputerBuilder o--> Computer
      Director o--> ComputerBuilder
      

      ?? 核心代碼實現

      1. 產品類 - 計算機實體

      /**

      • 計算機產品類 - 代表被構建的復雜對象
        */
        public class Computer {
        private String cpu;
        private String memory;
        private String hardDisk;
        private String mainFrame;

        // Setter方法
        public void setCPU(String cpu) { this.cpu = cpu; }
        public void setMemory(String memory) { this.memory = memory; }
        public void setHardDisk(String hardDisk) { this.hardDisk = hardDisk; }
        public void setMainFrame(String mainFrame) { this.mainFrame = mainFrame; }

        /**

        • 展示電腦配置信息
          */
          public void show() {
          System.out.println("====== 電腦配置信息 ");
          System.out.println("主機:" + mainFrame);
          System.out.println("CPU:" + cpu);
          System.out.println("內存:" + memory);
          System.out.println("硬盤:" + hardDisk);
          System.out.println("
          ===================");
          }
          }
      1. 抽象建造者 - 定義構建接口

      /**

      • 抽象建造者 - 定義計算機組裝的通用接口
        */
        public abstract class ComputerBuilder {
        protected Computer computer;

        public Computer getComputer() {
        return computer;
        }

        /**

        • 創建計算機實例
          */
          public void buildNewComputer() {
          computer = new Computer();
          }

        // 抽象構建方法
        public abstract void buildMainFrame();
        public abstract void buildCPU();
        public abstract void buildMemory();
        public abstract void buildHardDisk();
        }

      1. 具體建造者 - 筆記本構建器

      /**

      • 具體建造者 - 筆記本電腦組裝實現
        */
        public class LaptopBuilder extends ComputerBuilder {

        @Override
        public void buildMainFrame() {
        computer.setMainFrame("聯想輕薄本專用主板");
        System.out.println("安裝筆記本主板...");
        }

        @Override
        public void buildCPU() {
        computer.setCPU("Intel Core i7-1260P 移動版");
        System.out.println("安裝筆記本CPU...");
        }

        @Override
        public void buildMemory() {
        computer.setMemory("16GB LPDDR5 4800MHz");
        System.out.println("安裝筆記本內存...");
        }

        @Override
        public void buildHardDisk() {
        computer.setHardDisk("1TB NVMe SSD");
        System.out.println("安裝筆記本硬盤...");
        }
        }

      1. 具體建造者 - 臺式機構建器

      /**

      • 具體建造者 - 臺式電腦組裝實現
        */
        public class DesktopBuilder extends ComputerBuilder {

        @Override
        public void buildMainFrame() {
        computer.setMainFrame("華碩TUF GAMING ATX大板");
        System.out.println("安裝臺式機主板...");
        }

        @Override
        public void buildCPU() {
        computer.setCPU("AMD Ryzen 7 7700X");
        System.out.println("安裝臺式機CPU...");
        }

        @Override
        public void buildMemory() {
        computer.setMemory("32GB DDR5 5200MHz");
        System.out.println("安裝臺式機內存...");
        }

        @Override
        public void buildHardDisk() {
        computer.setHardDisk("2TB SSD + 4TB HDD");
        System.out.println("安裝臺式機硬盤...");
        }
        }

      1. 指揮者 - 控制構建流程

      /**

      • 指揮者 - 控制計算機的組裝流程
        */
        public class Director {
        private ComputerBuilder builder;

        public void setBuilder(ComputerBuilder builder) {
        this.builder = builder;
        }

        /**

        • 構建計算機的穩定流程
          */
          public Computer construct() {
          System.out.println("開始組裝計算機...");

          builder.buildNewComputer(); // 步驟1:創建新計算機
          builder.buildMainFrame(); // 步驟2:安裝主機
          builder.buildCPU(); // 步驟3:安裝CPU
          builder.buildMemory(); // 步驟4:安裝內存
          builder.buildHardDisk(); // 步驟5:安裝硬盤

          System.out.println("計算機組裝完成!");
          return builder.getComputer();
          }
          }

      1. 客戶端測試代碼

      /**

      • 客戶端測試類
        */
        public class Client {
        public static void main(String[] args) {
        // 創建指揮者
        Director director = new Director();

         System.out.println("=== 組裝筆記本電腦 ===");
         // 組裝筆記本電腦
         ComputerBuilder laptopBuilder = new LaptopBuilder();
         director.setBuilder(laptopBuilder);
         Computer laptop = director.construct();
         laptop.show();
         
         System.out.println("\n=== 組裝臺式電腦 ===");
         // 組裝臺式電腦
         ComputerBuilder desktopBuilder = new DesktopBuilder();
         director.setBuilder(desktopBuilder);
         Computer desktop = director.construct();
         desktop.show();
         
         // 驗證兩個計算機對象不同
         System.out.println("兩臺電腦是否相同: " + (laptop == desktop));
        

        }
        }

      ?? 運行結果示例

      === 組裝筆記本電腦 ===
      開始組裝計算機...
      安裝筆記本主板...
      安裝筆記本CPU...
      安裝筆記本內存...
      安裝筆記本硬盤...
      計算機組裝完成!
      ====== 電腦配置信息 ======
      主機:聯想輕薄本專用主板
      CPU:Intel Core i7-1260P 移動版
      內存:16GB LPDDR5 4800MHz
      硬盤:1TB NVMe SSD

      === 組裝臺式電腦 ===
      開始組裝計算機...
      安裝臺式機主板...
      安裝臺式機CPU...
      安裝臺式機內存...
      安裝臺式機硬盤...
      計算機組裝完成!
      ====== 電腦配置信息 ======
      主機:華碩TUF GAMING ATX大板
      CPU:AMD Ryzen 7 7700X
      內存:32GB DDR5 5200MHz
      硬盤:2TB SSD + 4TB HDD

      兩臺電腦是否相同: false

      ?? 編程規范實踐總結

      代碼規范要點

      1. 命名規范:類名大駝峰,方法名小駝峰
      2. 訪問控制:屬性private,建造者引用protected
      3. 注釋完整:每個類和方法都有JavaDoc說明
      4. 包結構清晰:相關類組織在合適包中
      5. 格式統一:一致的縮進和代碼風格

      設計模式最佳實踐

      1. 單一職責:每個類職責明確
      2. 依賴倒置:依賴于抽象而非具體實現
      3. 開閉原則:易于擴展新的建造者

      ?? 學習收獲與反思

      掌握程度評估

      ? ? 理解了建造者模式的結構和動機

      ? ? 能夠繪制標準的UML類圖

      ? ? 實現了完整的代碼示例

      ? ? 遵循了編程規范要求

      實際應用思考

      建造者模式不僅適用于計算機組裝,在軟件開發中還有很多應用場景:
      ? 文檔生成器(HTML、PDF等不同格式)

      ? 餐飲訂單系統(不同套餐組合)

      posted @ 2025-11-03 19:20  仙人兵馬俑  閱讀(5)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99精品国产精品一区二区| 一 级做人爱全视频在线看| 国产精品亚洲av三区色| 婷婷四虎东京热无码群交双飞视频| 4hu亚洲人成人无码网www电影首页 | 欧洲性开放老太大| 天天做天天爱夜夜爽导航| 国产伦精品一区二区三区| 国产精品一区二区三区自拍| 久久精品国产清自在天天线| 国产偷倩视频| 伊人色综合久久天天| 国产中文字幕精品喷潮| 强伦姧人妻免费无码电影| 亚洲成在人线在线播放无码| 97亚洲熟妇自偷自拍另类图片| 国产精品美女自慰喷水| 国产亚洲精品AA片在线爽| 色道久久综合亚洲精品蜜桃| 久久久精品2019中文字幕之3| 日本内射精品一区二区视频| 26uuu另类亚洲欧美日本| 虹口区| 伊人久久大香线蕉AV网| 久久青青草原亚洲AV无码麻豆| 中文字幕日韩精品人妻| 亚洲欧洲日产国无高清码图片| 国产香蕉尹人综合在线观看| 99久久99这里只有免费费精品| 亚洲暴爽av天天爽日日碰| 两个人的视频www免费| 午夜av高清在线观看| 午夜福利精品一区二区三区| 亚洲sm另类一区二区三区| 熟女在线视频一区二区三区 | 麻豆天美东精91厂制片| 乱60一70归性欧老妇| 三级黄色片一区二区三区| 精品剧情V国产在线观看| 亚洲精品无码日韩国产不卡av| 国产亚洲精品黑人粗大精选|