您的位置:首页 > 其它

设计模式——工厂方法模式

2017-10-31 17:23 106 查看
工厂方法模式个人理解:

工厂方法模式包含的元素有:

1. 抽象产品类

2. 产品实现类

3. 抽象工厂类

4. 工厂实现类

其他理解:

1. 要通过工厂方法模式实例化类,需先实例化该类对应的Factory类

2. 在对项目进行扩展的时候,不需要改动别处代码,只需要添加新产品的实现类(继承抽象产品类||实现抽象产品接口)、工厂实现类即可,改动地方比较少

3. 与简单工厂模式差异在于Factory类,Factory类实例化产品类的方式

4. 在个人实际项目中貌似没有用到过工厂方法模式。。。。。。我再回顾代码看看有没有

抽象产品类:

public abstract class Shape {

public abstract void draw();

}


产品实现类:

public class ShapeCircle extends Shape {

@Override
public void draw() {
Log.i("factory_mode", "----------draw: ShapeCircle---------");
}
}


public class ShapeRectangle extends Shape {

@Override
public void draw() {
Log.i("factory_mode", "----------draw: ShapeRectangle---------");
}
}


抽象工厂类:

public abstract class ShapeFactory {

public abstract Shape getShape();
}


4000

工厂实现类:

public class ShapeCircleFactory extends ShapeFactory {

@Override
public Shape getShape() {
return new ShapeCircle();
}
}


public class ShapeRectangleFactory extends ShapeFactory {

@Override
public Shape getShape() {
return new ShapeRectangle();
}
}


通过工厂方法模式实例化类:

private void factoryMethod(){
ShapeCircleFactory shapeFactory = new ShapeCircleFactory();
ShapeCircle shapeCircle = (ShapeCircle) shapeFactory.getShape();
shapeCircle.draw();

ShapeRectangleFactory shapeRectangleFactory = new ShapeRectangleFactory();
ShapeRectangle shapeRectangle = (ShapeRectangle)shapeRectangleFactory.getShape();
shapeRectangle.draw();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: