面向對象編程思想(一) - 電腦組裝

面向對象編程 - 電腦組裝編程

(一)首先須要分析電腦的組裝數組

1.電腦的構成:顯示器+主機this

2.而主機的構成是由:電源+硬盤+主板spa

3.在主板上應該包含:cpu+內存條+PCI插槽+USB插槽設計

4.PCI插槽上可能還有:顯卡+聲卡code

5.USB插槽上可能會插有:U盤htm

(二)進行接口的劃分對象

由於,電腦的每個部件並不存在什麼共同點,所以不能用一個接口去表示全部的部件,爲了達到後期可能會擴展或更換電腦的部件,這裏把電腦的每個部件都寫成接口,當進行電腦部件的更換時,只須要新的部件實現該部件的接口便可,須要編寫的接口以下:blog

1首先須要有Computer這個接口,即:接口

1 /**
2  * 電腦接口
3  * @author Wfei
4  *
5  */
6 public interface IComputer
7 {
8     
9 }

2.一樣的,還有:顯示器接口:IDisplyer、主機的接口:IMainBox、電源接口:IPower、硬盤接口:IHardDisk、主板接口:IMainBoard、CPU接口:ICpu、內存條接口:IMemory、PCI插槽接口:IPci、USB插槽接口:IUsb、顯卡接口:IGraphicsCard、聲卡接口:IAudioCard、U盤接口:IUsbDisk

(三)編寫實現上述接口的方法

1.電腦類的編寫,電腦須要實現電腦接口,而且在電腦須要包含:主機+顯示器,所以在電腦類中須要包含兩個屬性:主機+顯示器,代碼以下:

 1 /**
 2  * 實現電腦接口
 3  * @author Wfei
 4  *
 5  */
 6 public class Computer implements IComputer
 7 {
 8     /**
 9      * 電腦會包含兩個組成部分:顯示器+主機,所以須要兩個屬性
10      */
11     //顯示器
12     private IDisplyer displyer;
13     //主機
14     private IMainBox mainBox;
15     
16     public IDisplyer getDisplyer()
17     {
18         return displyer;
19     }
20     public void setDisplyer(IDisplyer displyer)
21     {
22         this.displyer = displyer;
23     }
24     public IMainBox getMainBox()
25     {
26         return mainBox;
27     }
28     public void setMainBox(IMainBox mainBox)
29     {
30         this.mainBox = mainBox;
31     }
32 }

2.一樣的,主機也包含3個部分,即:電源+硬盤+主板,所以也須要3個屬性;而主板包含4個部分,即:cpu+內存+pci+usb,所以須要4個屬性,由於主板上可能有多個pci接口和usb接口,所以變量pci和usb須要用數組進行存儲,而且還須要另外添加兩個方法,用於將相應的硬件插入到相應的接口編號上,代碼以下:

1 //這裏還須要兩個方法,用於將pci、usb插槽上的硬件安裝到相應的插槽編號上
2     public void setPci(IPci pci,int index)
3     {
4         pcis[index] = pci;
5     }
6     public void setUsb(IUsb usb,int index)
7     {
8         this.usb[index] = usb;
9     }

 

3.其餘的類在實現相應的接口的方法有:

顯示器類實現IDisplyer接口:public class Displayer implements IDisplyer

cpu類實現ICpu接口:public class Cpu implements ICpu

顯示器類實現IDisplyer接口:public class Displayer implements IDisplyer

硬盤類實現IHardDisk接口:public class HardDisk implements IHardDisk

內存類實現IMemory接口:public class Memory implements IMemory

電源類實現IPower接口:public class Power implements IPower

4.特別的,顯卡類須要實現兩個接口,即:IGraphicsCard接口、IPci接口,由於顯卡須要知足必定的PCI接口才能夠插在顯卡的插槽上,代碼以下:

1 /**
2  * 顯卡類實現IGraphicsCard接口、IPci接口
3  * @author Wfei
4  *
5  */
6 public class GraphicsCard implements IGraphicsCard, IPci
7 {
8 
9 }

5.相似的還有:

聲卡類實現IAudioCard接口、IPci接口:public class AudioCard implements IAudioCard, IPci

u盤實現IUsbDisk接口、IUsb接口:public class UsbDisk implements IUsbDisk, IUsb

(四)全部的接口和實現類編寫完畢後,就須要實例化出來米一個部件的實體,並進行電腦的組裝,代碼以下:

 1 public class Person
 2 {
 3 
 4     /**
 5      * @param args
 6      */
 7     public static void main(String[] args)
 8     {
 9         //實例化電腦類,以接收電腦的組裝
10         Computer computer = new Computer();
11         //購買顯示器
12         Displayer displayer = new Displayer();
13         //購買機箱
14         MainBox mainBox = new MainBox();
15         
16         //進行電腦的初步組裝
17         computer.setDisplyer(displayer);
18         computer.setMainBox(mainBox);
19         
20         //購買電源
21         Power power = new Power();
22         //購買硬盤
23         HardDisk hardDisk = new HardDisk();
24         //購買主板
25         MainBoard mainBoard = new MainBoard();
26         
27         //將主板、電源、硬盤安裝到機箱內
28         mainBox.setHardDisk(hardDisk);
29         mainBox.setMainBoard(mainBoard);
30         mainBox.setPower(power);
31         
32         //購買cpu
33         Cpu cpu = new Cpu();
34         //購買內存條
35         Memory memory = new Memory();
36         
37         //將內存條、cpu安裝到主板上
38         mainBoard.setCpu(cpu);
39         mainBoard.setMemory(memory);
40         
41         //由於主板上會存在多個pci接口,因此在插入pci接口硬件時,須要設定該插入到那個接口上
42         //首先,購買聲卡、顯卡
43         AudioCard audioCard = new AudioCard();
44         GraphicsCard graphicsCard = new GraphicsCard();
45         //而後,將聲卡插入到第一個pci插槽上
46         mainBoard.setPci(audioCard, 0);
47         //再將顯卡插入到第二個pci插槽上
48         mainBoard.setPci(graphicsCard, 1);
49         
50         //相似的插入usb插槽的硬件
51         UsbDisk usbDisk = new UsbDisk();
52         mainBoard.setUsb(usbDisk, 0);
53         
54         System.out.println("電腦組裝完畢!");
55     }
56 }

(五)總結

 面向對象的編程思想,這樣進行電腦的組裝,可能看上去會比通常的編寫方法用到了更多的文件,寫了更多行的代碼,可是當後期進行電腦部件更換時,只須要在添加一個類用於實現相應的部件接口,並進行購買,插入到相應的位置便可,根本不須要改動程序的「主要邏輯設計」,也不會影響到其餘代碼的編寫

(六)源碼

相關文章
相關標籤/搜索