图片来自于知乎。大火看看就好不用点赞/
代码
public abstract class Mouse {
public abstract void click();
}
public class DellMouse extends Mouse{
@Override
public void click() {
System.out.println("dell click");
}
}
public class HpMouse extends Mouse{
@Override
public void click() {
System.out.println("hp click");
}
}
public class MouseFactory {
public Mouse createMouse(int i)
{
switch (i)
{
case 0:
return new DellMouse();
case 1:
return new HpMouse();
default:
return null;
}
}
public static void main(String[] args) {
Mouse mouse = new MouseFactory().createMouse(0);
mouse.click();
}
}
心得一
简单工厂感觉太容易出错了。比如说你要输入0不小心输入1生产的鼠标就错误了。
而且简单工厂对于再增加新的类 如 HUAWEIMouse 还要修改代码不太行。
鼠标的代码一样
public interface MouseFactory {
public Mouse createMouse();
}
public class HPMosueFactory implements MouseFactory{
@Override
public Mouse createMouse() {
return new HpMouse();
}
}
public class DellMouseFactory implements MouseFactory{
@Override
public Mouse createMouse() {
return new DellMouse();
}
}
public class Run {
public static void main(String[] args) {
new DellMouseFactory().createMouse().click();
new HPMosueFactory().createMouse().click();
}
}
但是我有一个疑问,这样的话还要代码作甚。直接new DellMouse()不就完事了。