【软件设计模式】工厂模式应用

有一个电脑制造商代理做HP笔记本电脑,后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该制造商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,绘制该模式的UML图,用Java控制台应用程序实现。

UML类图:

在这里插入图片描述

程序代码(Java语言):

Computer.java

public interface Computer {
	public String newcomputer();
}

ComputerFactory.java

public interface ComputerFactory {
	public Computer createComputer();
}

AcerComputer.java

public class AcerComputer implements Computer {
	public String newcomputer() {
		String s = "Acer笔记本电脑生产完成!";
		return s;
	}
}

DellComputer.java

public class DellComputer implements Computer{
	public String newcomputer() {
		String s = "Dell笔记本电脑生产完成!";
		return s;
	}
}

HpComputer.java

public class HpComputer implements Computer {
	public String newcomputer() {
		String s = "HP笔记本电脑生产完成!";
		return s;
	}
}

LenovoComputer.java

public class LenovoComputer implements Computer {
	public String newcomputer() {
		String s = "Lenovo笔记本电脑生产完成!";
		return s;
	}
}

AcerFactory.java

public class AcerFactory implements ComputerFactory{
	public Computer createComputer() {
		return new AcerComputer();
	}
}

DellFactory.java

public class DellFactory implements ComputerFactory{
	public Computer createComputer() {
		return new DellComputer();
	}
}

HpFactory.java

public class HpFactory implements ComputerFactory {
	public Computer createComputer() {
		return new HpComputer();
	}
}

LenovoFactory.java

public class LenovoFactory implements ComputerFactory {
	public Computer createComputer() {
		return new LenovoComputer();
	}
}

Client.java

public class Client {
	public static void main(String[] args) {
		ComputerFactory hpFactory = new HpFactory();
		ComputerFactory acerFactory = new AcerFactory();
		ComputerFactory lenovoFactory = new LenovoFactory();
		ComputerFactory dellFactory = new DellFactory();
		
		Computer hp = hpFactory.createComputer();
		Computer acer = acerFactory.createComputer();
		Computer lenovo = lenovoFactory.createComputer();
		Computer dell = dellFactory.createComputer();
		
		System.out.println(hp.newcomputer());
		System.out.println(acer.newcomputer());
		System.out.println(lenovo.newcomputer());
		System.out.println(dell.newcomputer());
	}
}
运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CS_木成河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值