package com.csdn.tail2;
interface Computer {
void printComputer();
}
package com.csdn.tail2;
public class computerFactory {
Computer computer = null;
public static Computer getIntance(String Type) {
Computer computer = null;
//单引号-->字符 双引号-->字符串
if(Type.equals("Alica")){
computer=new Alica ();
}
if(Type.equals("hupu")){
computer = new hupu();
}else{
throw new RuntimeException("找不到此类型的电脑,不能加载成功");
}
return computer;
}
}
class Alica implements Computer{
@Override
public void printComputer() {
System.out.println("this is Alica computer");
}
}
class hupu implements Computer{
@Override
public void printComputer() {
System.out.println("this is hupu computer");
}
}
package com.csdn.tail2;
import java.util.Scanner;
public class Client {
public void buycomputer(Computer computer){
computer.printComputer();
}
public static void main(String[] args) {
Client client = new Client();
System.out.println("please input you want to buy computer bank:");
Scanner scanner = new Scanner(System.in);
String Type = scanner.nextLine();
Computer computer = computerFactory.getIntance(Type);
client.buycomputer(computer);
}
}
运行截图:
产生背景:这是一个买电脑的例子,
如果没有工厂模型,
public class Client {
public void buyComputer(Computer computer) {
computer.printComputer();
}
public static void main(String[] args) {
Client client = new Client();
client.buyComputer(new MacbookProComputer());
}
}
当顾客每次买不同类型的电脑,我们都需要在客户端修改代码,以满足客户需求。
而工厂设计模型就会让实例化对象从客户端抽离,有了人机交互。