Java常用的设计模式并举例
时间: 2023-04-02 13:01:37 浏览: 153
常用的设计模式有:单例模式、工厂模式、观察者模式、装饰器模式、适配器模式等。举例来说,单例模式可以保证一个类只有一个实例,比如数据库连接池;工厂模式可以根据不同的需求创建不同的对象,比如简单工厂模式可以根据传入的参数创建不同的产品;观察者模式可以实现对象之间的松耦合,比如监听器;装饰器模式可以动态地给一个对象添加一些额外的职责,比如 Java 中的 IO 流就是使用了装饰器模式;适配器模式可以将一个类的接口转换成客户端所期望的另一个接口,比如 Java 中的 InputStream 和 OutputStream 就是使用了适配器模式。
相关问题
项目里面常用的设计模式并举例
常用的设计模式有很多,这里只举几个例子。
1. 工厂模式(Factory Pattern):根据不同的参数选择不同的构造函数来创建对象。比如Java中的Calendar.getInstance()方法就是使用了工厂模式。
2. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。比如应用程序中的日志或者配置对象通常使用单例模式。
3. 观察者模式(Observer Pattern):当一个对象发生变化时,它会通知所有依赖于它的对象。比如Java中的事件监听器就是使用了观察者模式。
4. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。比如Java中的RMI(远程方法调用)就是使用了代理模式。
这些设计模式都有各自的应用场景,并且常常被用于构建大型的软件系统。
java中设计模式 工厂模式介绍,并举例说明
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,可以将对象的创建过程与使用过程分离开来。
工厂模式的主要思想是通过一个工厂方法来实现对象的创建,而不是直接在代码中通过new来创建对象。这样做的好处是可以减少代码的耦合度,同时增强代码的可扩展性和可维护性。
举个例子,假设有一个形状接口Shape和三个实现类Circle、Rectangle、Square,我们可以定义一个工厂类ShapeFactory来生成Shape的实现类。
```
interface Shape {
void draw();
}
class Circle implements Shape {
public void draw() {
System.out.println("Circle.draw()");
}
}
class Rectangle implements Shape {
public void draw() {
System.out.println("Rectangle.draw()");
}
}
class Square implements Shape {
public void draw() {
System.out.println("Square.draw()");
}
}
class ShapeFactory {
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;
}
}
```
然后我们可以通过以下代码来生成不同的形状对象:
```
ShapeFactory shapeFactory = new ShapeFactory();
Shape circle = shapeFactory.getShape("CIRCLE");
circle.draw(); // output: Circle.draw()
Shape rectangle = shapeFactory.getShape("RECTANGLE");
rectangle.draw(); // output: Rectangle.draw()
Shape square = shapeFactory.getShape("SQUARE");
square.draw(); // output: Square.draw()
```
阅读全文