-
这天,Y先生正在工作,突然Q女士来电话了:“老公,家里的电脑坏了,好像得重新安装系统!”
Y先生最怕重装系统,他只好说:“老婆,等我下班回家再给你装吧,太麻烦了,怕你弄不好。”
Q女士:怎么重装系统这么麻烦吗?好吧,晚上你早点回来。
晚上,Y先生和Q女士坐在电脑前,Y先生首先备份了需要的数据,然后使用光盘安装系统,格式化,安装,安装驱动。。。。。
终于1个小时以后,系统安装完毕!
Y先生擦了擦汗:好了,终于弄完了。
Q女士:这么麻烦啊,,,可是以后如果电脑再出问题,我想自己安装系统怎么办呢?
Y先生想了想,恩,这我可得想想办法。看来我们需要做一件复杂的事情(安装系统),以及如何去执行这个复杂的事情。
好吧,我们先来创建一个东西去做复杂的事情:
- public interface ISysInstallBuilder {
- public void backupdata();
- public void formatDisk();
- public void copyData();
- public void installUsefulTool();
- }
Y先生:这是一个接口,下面我来实现安装windows xp 的实现:
java 代码
- public class WinXpInstallBuilder implements ISysInstallBuilder {
- public void backupdata() {
- // TODO Auto-generated method stub
- //blalalala....
- }
- public void formatDisk() {
- // TODO Auto-generated method stub
- }
- public void copyData() {
- // TODO Auto-generated method stub
- }
- public void installUsefulTool() {
- // TODO Auto-generated method stub
- }
- }
Q女士:嗯,通过这个类我就能安装系统了:
java 代码
- public static void main(String[] args) {
- WinXpInstallBuilder builder = new WinXpInstallBuilder();
- builder.backupdata();
- builder.copyData();
- builder.formatDisk();
- builder.installUsefulTool();
- }
Y先生:你看,你弄错了吧!格式化应该在复制数据之前。先别急,看看下面的:
java 代码
- public class SysInstallDirector {
- private ISysInstallBuilder builder;
- public SysInstallDirector(ISysInstallBuilder builder) {
- // TODO Auto-generated constructor stub
- this.builder = builder;
- }
- public void installSystem() {
- builder.backupdata();
- builder.formatDisk();
- builder.copyData();
- builder.installUsefulTool();
- }
- }
Q 女士:嗯,我明白你的意思了,我以后就用这个类来安装系统就行了,对吧:
java 代码
- public static void main(String[] args) {
- SysInstallDirector director = new SysInstallDirector(
- new WinXpInstallBuilder());
- director.installSystem();
- }
Q女士:嗯,这样当我做这件复杂的事情的时候时,就不怕把它弄错了!