面向对象编程思想(一) - 电脑组装

面向对象编程 - 电脑组装编程

(一)首先须要分析电脑的组装数组

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 }

(五)总结

 面向对象的编程思想,这样进行电脑的组装,可能看上去会比通常的编写方法用到了更多的文件,写了更多行的代码,可是当后期进行电脑部件更换时,只须要在添加一个类用于实现相应的部件接口,并进行购买,插入到相应的位置便可,根本不须要改动程序的“主要逻辑设计”,也不会影响到其余代码的编写

(六)源码

相关文章
相关标签/搜索