1. 程式人生 > 其它 >Exawizards Programming Contest 2021(AtCoder Beginner Contest 222)【A - G】

Exawizards Programming Contest 2021(AtCoder Beginner Contest 222)【A - G】

第1次任務:購物車程式的面向物件設計

目錄

目標

  • 學會使用講故事的方式找到系統中可能包含的類與屬性
  • 理解封裝

任務

  1. 編碼規範:使用英文對類、方法、包進行命名(查英文詞典,不得出現拼音)。參考JAVA編碼規範,進行類命名,方法命名、包命名,合適的縮排,有意義的變數名。見參考資料1中的1.1-1.4。
  2. 前期調查與功能設計:調查京東商城或者亞馬遜商城中的購物車,體驗從搜尋商品、加入購物車、操作購物車、下單全過程,思考該過程可能包含的類。演示中要求圖多字少。
  3. 面向物件設計:以面向物件的方法編寫購物車程式碼。先設計有什麼類,再考慮什麼方法放到那個類中合適。初期可不用完成具體功能,只要將類名、類之間的關係、方法名設計好即可。見參考資料2、3。注意學習類與類之間的關係(先重點掌握關聯關係依賴關係)。
  4. PPT製作或部落格製作並上臺演示:演示前,請務必自己在同學面前預演一遍。

注意:初期將重點放在面向物件設計、命名規範

人員分工

任務 姓名
編碼規範、前期調查與功能設計 原嘉怡
面向物件設計 黃靜
部落格製作 原嘉怡、黃靜

前期調查

我們以京東商城為例,體驗從搜尋商品、加入購物車、操作購物車、到最後下單的全過程,並對此過程進行思考和學習,設計自己的購物車相關程式碼。

  • 首先,進入京東商城首頁,可以看到有一個搜尋欄,右方為自己的購物車,左下方還有商品的類別檢索,以及各個市場或活動會場的入口。

  • 然後,在搜尋欄中輸入想要查詢的商品,點選搜尋,出現大量商品可供選擇,還可根據上方的類別索引更加精確地尋找商品。商品上有單價與加入購物車標識。

  • 點選商品,進去商品詳情頁面,內部包含商品名稱和圖片,包含使用者配送地址,還有商品種類,數量等選擇,最後選擇好後可加入購物車。

  • 進入購物車介面,列舉了所有加入購物車的商品名稱,種類以及它們各自的單價,數量,總價,還包含整個訂單中的商品總數量,總價格

  • 使用者可在購物車中進行對商品進行數量增減,選擇並刪除商品,選擇並下單商品等相關操作,且下單之後的商品也會被移出購物車

  • 至此,完成了從搜尋商品、加入購物車、操作購物車、到最後下單的網上購物全過程

系統功能結構圖

系統描述

使用者 首先登陸主介面,選擇進入商城,即可在商場內搜尋自己需要購買的 商品 ,在商城中 展示使用者所搜尋查詢的商品 之後,包括 商品的編號,名稱,單價,類別等屬性 ,使用者可以選擇將想要購買的商品 加入購物車 ,若購物車中已有該商品,即直接 增加該商品的數量 。在進入購物車後,可對購物車中的商品進行 展示 ,也可對選中的商品進行 刪除 ,之後可根據使用者的選擇將選中的商品條目 生成訂單 計算總價 ,完成購買。已購買商品從購物車中 移除 ,使用者完成一次網上購物。

UML類圖

類的關鍵屬性與方法、類與類之間的關係,每個類的功能描述可由UML類圖展示。

面向物件的封裝性

商品的編號,名稱、單價,型別等屬性是購物車中商品的基本屬性,不會因為使用者的操作,如數量的增減而發生變化,在程式的執行過程中保持不變,因此,可對其進行封裝。面向物件的封裝效能夠把資訊封裝,保證資料的完整和安全,使資料不會發生變化。
封裝性包括屬性的封裝,方法的封裝,類的封裝,元件的封裝等。

  • 屬性私有化,通過使用private修飾符關鍵字進行修飾,外部無法直接訪問
  • 使用this關鍵字。this的使用,訪問本類當中的成員變數,需要使用格式:this.成員變數名
  • 方法構造方法,建立物件時,就是在呼叫構造方法

主要功能與關鍵程式碼

選單介面

商品類

購物車類

關鍵部分流程圖

選單頁面

新增商品到購物車中

從購物車中刪除商品

計算訂單總價

參考資料

  1. 阿里巴巴Java開發手冊 終極版(1.3.0)
  2. 面向物件設計與UML類圖中的什麼是類如何繪製類圖
  3. 5分鐘讀懂UML類圖