Java工厂设计模式的代码怎么写
实现方法 我们将创建一个Shape接口和实现Shape接口的具体类。一个工厂类ShapeFactory会在下一步中定义。 FactoryPatternDemo这是一个演示类,将使用ShapeFactory来获取一个Shape对象。它会将信息(CIRCLE/RECTANGLE/SQUARE)传递给ShapeFactory以获取所需的对象类型。 实现工厂模式的结构如下图所示- java-61.jpg 第1步 创建一个接口- Shape.java publicinterfaceShape{
实现方法
我们将创建一个Shape接口和实现Shape接口的具体类。一个工厂类ShapeFactory会在下一步中定义。
FactoryPatternDemo这是一个演示类,将使用ShapeFactory来获取一个Shape对象。它会将信息(CIRCLE/RECTANGLE/SQUARE)传递给ShapeFactory以获取所需的对象类型。
实现工厂模式的结构如下图所示-
java-61.jpg
第1步
创建一个接口-
Shape.java
publicinterfaceShape{
voiddraw();
}
第2步
创建实现相同接口的具体类。如下所示几个类-
Rectangle.java
publicclassRectangleimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideRectangle::draw()method.");
}
}
Square.java
publicclassSquareimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideSquare::draw()method.");
}
}
Circle.java
publicclassCircleimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideCircle::draw()method.");
}
}
第3步
创建工厂根据给定的信息生成具体类的对象。
ShapeFactory.java
publicclassShapeFactory{
//usegetShapemethodtogetobjectoftypeshape
publicShapegetShape(StringshapeType){
if(shapeType==null){
returnnull;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
returnnewCircle();
}elseif(shapeType.equalsIgnoreCase("RECTANGLE")){
returnnewRectangle();
}elseif(shapeType.equalsIgnoreCase("SQUARE")){
returnnewSquare();
}
returnnull;
}
}
第4步
使用工厂通过传递类型等信息来获取具体类的对象。
FactoryPatternDemo.java
publicclassFactoryPatternDemo{
publicstaticvoidmain(String[]args){
ShapeFactoryshapeFactory=newShapeFactory();
//getanobjectofCircleandcallitsdrawmethod.
Shapeshape1=shapeFactory.getShape("CIRCLE");
//calldrawmethodofCircle
shape1.draw();
//getanobjectofRectangleandcallitsdrawmethod.
Shapeshape2=shapeFactory.getShape("RECTANGLE");
//calldrawmethodofRectangle
shape2.draw();
//getanobjectofSquareandcallitsdrawmethod.
Shapeshape3=shapeFactory.getShape("SQUARE");
//calldrawmethodofcircle
shape3.draw();
}
}
第5步
验证输出结果如下-
InsideCircle::draw()method.
InsideRectangle::draw()method.
InsideSquare::draw()method.
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















