- Java系統(tǒng)化項(xiàng)目開發(fā)教程
- 古凌嵐 張嬋 羅佳
- 1199字
- 2019-09-10 14:40:31
1.4 項(xiàng)目案例及設(shè)計(jì)
本書內(nèi)容的展開,是以圖形參數(shù)計(jì)算程序(項(xiàng)目1~項(xiàng)目3)和鬧鐘工具小軟件(項(xiàng)目4~項(xiàng)目10)的實(shí)現(xiàn)為主要線索的,因此,我們有必要先了解下這兩個案例的背景和設(shè)計(jì)思路。
1.4.1 先導(dǎo)案例:圖形參數(shù)計(jì)算程序
(1)背景
Java是一個純面向?qū)ο笳Z言,面向?qū)ο笏枷氲睦斫夂驼莆帐菍W(xué)習(xí)Java編程的基礎(chǔ),前三個單元就是主要介紹面向?qū)ο蟮幕靖拍睿约癑ava的基本語法。由于面向?qū)ο蟾拍钶^為抽象,不易理解,因而,采用控制臺窗口方式,突出算法邏輯過程,選取大家熟知的圖形參數(shù)計(jì)算為載體,以便著力于面向?qū)ο缶幊谭椒ǖ膶W(xué)習(xí)和應(yīng)用。
(2)功能描述
實(shí)現(xiàn)常見圖形名稱的顯示,以及周長和面積計(jì)算的功能。
(3)設(shè)計(jì)思路
常用圖形包括三角形、四邊形、梯形等多種,每種圖形均有名稱、周長和面積等參數(shù),周長與面積的計(jì)算公式視圖形形狀的不同而不同。采用面向過程的編程方法,在設(shè)計(jì)圖形參數(shù)計(jì)算程序時,根據(jù)每種圖形形狀不同,需要設(shè)計(jì)相應(yīng)的計(jì)算邏輯,過程重復(fù),可復(fù)用性差。
根據(jù)面向?qū)ο蟮木幊趟枷耄O(shè)計(jì)一個圖形類,圖形的參數(shù)作為該類的屬性,參數(shù)計(jì)算則可通過定義該類的方法來實(shí)現(xiàn)。對于不同形狀的圖形,則可通過類的繼承、多態(tài)特性來實(shí)現(xiàn)不同的計(jì)算邏輯,以適應(yīng)多種圖形特點(diǎn)的周長和面積計(jì)算需要,同時具有較好的可擴(kuò)展性。
1.4.2 實(shí)戰(zhàn)案例:鬧鐘工具小軟件
(1)背景
在了解了 Java 面向?qū)ο缶幊谭椒ɑA(chǔ)上,后續(xù)單元則著重闡述如何應(yīng)用 Java 基礎(chǔ)類庫和編程機(jī)制,來進(jìn)行軟件開發(fā)。由于篇幅有限,以知識點(diǎn)覆蓋率高、業(yè)務(wù)流程完整、項(xiàng)目小而精為原則,選取了鬧鐘工具軟件作為載體。
(2)功能描述
這是一個可視化的工具軟件,主要功能如下。
① 設(shè)置鬧鐘(可以是一個或多個)。
② 選擇鈴聲和試聽鈴聲。
③ 實(shí)現(xiàn)主界面的圖標(biāo)最小化及還原。
④ 實(shí)現(xiàn)兩種方式上傳/下載鈴聲文件:一是利用服務(wù)器上傳和下載;二是利用數(shù)據(jù)庫實(shí)現(xiàn)上傳和下載。
鬧鐘工具小軟件運(yùn)行效果如圖1-5所示,其中圖1-5a為主界面,圖1-5b為版本說明界面。
(3)設(shè)計(jì)思路
① 為了提供更好的用戶體驗(yàn),采用Java提供的圖形界面方式,進(jìn)行用戶界面設(shè)計(jì),包括背景圖片、可視化操作按鈕等。

圖1-5 鬧鐘工具小軟件主界面
② 通過事件處理機(jī)制實(shí)現(xiàn)用戶交互,如設(shè)置提醒時間、選擇鈴聲等。
③ 利用輸入/輸出機(jī)制實(shí)現(xiàn)系統(tǒng)目錄上鈴聲文件的讀取和保存,用于用戶選取鈴聲。
④ 利用數(shù)據(jù)庫或服務(wù)器目錄,都可實(shí)現(xiàn)對客戶端文件的存取,但在一般情況下,文件較小時(如本案例),會選擇數(shù)據(jù)庫,否則放在服務(wù)器目錄。由于這兩種方式都是必掌握內(nèi)容,因此,在項(xiàng)目7和項(xiàng)目10中,分別采用數(shù)據(jù)庫和訪問遠(yuǎn)程服務(wù)器兩種方式實(shí)現(xiàn)新鈴聲的上傳/下載。
⑤ 對于中間結(jié)果數(shù)據(jù)的保存,根據(jù)情況進(jìn)行設(shè)計(jì),若為單個數(shù)值,如鬧鐘的時、分和秒,采用整型簡單數(shù)據(jù)類型;對于類類型,采用對應(yīng)類型的引用變量,如鬧鐘界面上的字體類Font,針對一些數(shù)量不定的類類型數(shù)據(jù)序列,則采用集合類,如鈴聲文件序列。
⑥ 利用多線程技術(shù),將每個鬧鈴的啟動設(shè)計(jì)為一個線程,以達(dá)到可同時設(shè)置多個鬧鈴的需要。
- 深度實(shí)踐OpenStack:基于Python的OpenStack組件開發(fā)
- Python深度學(xué)習(xí)
- 基于Java技術(shù)的Web應(yīng)用開發(fā)
- 數(shù)據(jù)結(jié)構(gòu)習(xí)題精解(C語言實(shí)現(xiàn)+微課視頻)
- OpenStack Cloud Computing Cookbook(Fourth Edition)
- Hadoop+Spark大數(shù)據(jù)分析實(shí)戰(zhàn)
- C語言程序設(shè)計(jì)案例式教程
- HTML5+CSS3網(wǎng)站設(shè)計(jì)教程
- Visual Basic學(xué)習(xí)手冊
- INSTANT OpenNMS Starter
- 劍指Java:核心原理與應(yīng)用實(shí)踐
- Red Hat Enterprise Linux Troubleshooting Guide
- C++ System Programming Cookbook
- UML基礎(chǔ)與Rose建模實(shí)用教程(第三版)
- 深入理解Java虛擬機(jī):JVM高級特性與最佳實(shí)踐