Java设计模式(2):简单工厂模式

简单工厂模式又叫静态工厂模式,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数来决定返回实现同一接口的不同类的实例。

单例模式设计思想:

1)首先,定义一个抽象父亲类或接口

2)定义具体的子类来继承或实现第一步的抽象父类或接口:

3)定义一个简单工厂类,并定义一个静态生产方法,根据传进来的type参数生成对应的具体子类。

示例:

enum ShapeTYPE{

RECTANGLE,SQUARE,CIRCLE;

}//首先,创建一个接口。

interface Shape {

void draw();

}

//创建实现接口的实体类。

class Rectangle implements Shape {

@Override

public void draw() {

System.out.println("绘制矩形...");

}

}

class Square implements Shape {

@Override

public void draw() {

System.out.println("绘制正方形...");

}

}

class  Circle implements Shape {

@Override

public void draw() {

System.out.println("绘制圆形...");

}

}

class ShapeFactory {

//使用 getShape 方法获取形状类型的对象

public Shape getShape(ShapeTYPE shapeType){

if(shapeType == null){

return null;

}

if(shapeType==ShapeTYPE.CIRCLE){

return new Circle();

} else if(shapeType==ShapeTYPE.RECTANGLE){

return new Rectangle();

} else if(shapeType==ShapeTYPE.SQUARE){

return new Square();

}

return null;

}

}

public class FactoryPatternDemo {

public static void main(String[] args) {

ShapeFactory shapeFactory = new ShapeFactory();

//获取 Circle 的对象,并调用它的 draw 方法

Shape shape1 = shapeFactory.getShape(ShapeTYPE.CIRCLE);

//调用 Circle 的 draw 方法

shape1.draw();

//获取 Rectangle 的对象,并调用它的 draw 方法

Shape shape2 = shapeFactory.getShape(ShapeTYPE.RECTANGLE);

//调用 Rectangle 的 draw 方法

shape2.draw();

//获取 Square 的对象,并调用它的 draw 方法

Shape shape3 = shapeFactory.getShape(ShapeTYPE.SQUARE);

//调用 Square 的 draw 方法

shape3.draw();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管...
    浮生岁月阅读 3,769评论 0 7
  • 设计模式在我们学习完java基础之后,应该都学习过,那时候觉的为什么要把很简单的东西搞得那么复杂。我所理解的“简...
    信徒_allen阅读 351评论 0 1
  • 再读高效c++,颇有收获,现将高效c++中的经典分享如下,希望对你有所帮助。 1、尽量以const \enum\i...
    橙小汁阅读 1,241评论 0 1
  • 意图: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行 主要解决:...
    W有来有去阅读 206评论 0 0
  • 建议下载pdf附件。 l Factory Method****(工厂方法)****** 意图:**** 定义一...
    诵之思之阅读 279评论 0 0