java 创建型设计模式
时间: 2023-12-04 10:41:49 浏览: 97
Java中的创建型设计模式有以下几种:
1. 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式使一个类的实例化延迟到其子类。
2. 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
3. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。
4. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
5. 原型模式(Prototype Pattern):用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。
以下是一个工厂方法模式的示例:
```java
// 定义一个抽象的工厂类
abstract class AbstractFactory {
public abstract Shape getShape(String shapeType);
}
// 定义一个工厂类,用于创建不同的形状
class ShapeFactory extends AbstractFactory {
public Shape getShape(String shapeType) {
if (shapeType == null) {
return null; }
if (shapeType.equalsIgnoreCase("CIRCLE")) {
return new Circle();
} else if (shapeType.equalsIgnoreCase("RECTANGLE")) {
return new Rectangle();
} else if (shapeType.equalsIgnoreCase("SQUARE")) {
return new Square();
}
return null;
}
}
// 定义一个接口,用于表示不同的形状
interface Shape {
void draw();
}
// 定义一个圆形类
class Circle implements Shape {
public void draw() {
System.out.println("Inside Circle::draw() method.");
}
}
// 定义一个矩形类
class Rectangle implements Shape {
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
// 定义一个正方形类
class Square implements Shape {
public void draw() {
System.out.println("Inside Square::draw() method.");
}
}
// 使用工厂类创建不同的形状
public class FactoryPatternDemo {
public static void main(String[] args) {
AbstractFactory shapeFactory = new ShapeFactory();
Shape shape1 = shapeFactory.getShape("CIRCLE");
shape1.draw();
Shape shape2 = shapeFactory.getShape("RECTANGLE");
shape2.draw();
Shape shape3 = shapeFactory.getShape("SQUARE");
shape3.draw();
}
}
```
阅读全文