友情提示:
本人还是学生,有什么理解上的偏差欢迎大家指出。
不过写博客是为了表达意思,如果有格式上的小错误大概率是因为我懒得改,请不要深究。
- 简单工厂模式
==> 从创建许多不同的对象,变成往一个方法中传入不同的参数
public static void main(String[] args) {
// 想画100个的图形,
// 不用工厂模式:
Shape s1 = new Circle();
s1.draw();
Shape s2 = new Square();
s2.draw();
.
.
Shape s100 = new Circle();
s100.draw();
// 而使用工厂模式的话
ShapeFactory shapeFactory = new ShapeFactory();
for (int i = 0; i < 100; i++) {
Shape shape1 = shapeFactory.getShape(i);
shape1.draw();
}
}
- 工厂方法模式
下面两种看起来没什么区别,甚至前者的还不需要实现抽象工厂类,但是,
==> 如果想让这个通用画图器能够画三角,前者需要直接改核心代码,后者只需要新建一个Trianglefactory implements ShapeFactory,就可以继续用p2的代码了
// 想做一个**通用**画图形工具
public void readPicture(String type) {
// 不用工厂方法模式
if(type.equals("Circle")) {
Shape s = ShapeFactory.getShape("Circle");
s.draw();
} else {
Shape s = ShapeFactory.getShape("Square");
s.draw();
}
// 用工厂方法模式
// p1
ShapeFactory factory=new CircleFactory();
{ // p2
Shape=factory.getShape();
shape.draw();
}
}