java常见面试题:请解释一下Java中的常用设计模式,如单例模式、工厂模式、观察者模式等。

2024-01-01 20:22:47

Java中的常用设计模式是一组经过反复使用、多数人认可的软件设计经验,它可以解决特定的问题或提供一种通用的解决方案。下面将对单例模式、工厂模式和观察者模式进行详细解释,并提供示例代码。

  1. 单例模式(Singleton Pattern):单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。

解释:单例模式适用于需要频繁创建和销毁同一对象的情况,或者当一个类只需要一个实例就可以满足需求时。通过单例模式,可以避免重复创建相同对象,提高性能和资源利用率。

示例:

java复制代码

public class Singleton {
private static Singleton instance;
private Singleton() {} // 私有构造函数,防止外部直接实例化
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
  1. 工厂模式(Factory Pattern):工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式使对象的创建与使用分离,提高了代码的灵活性和可扩展性。

解释:工厂模式适用于需要根据不同的条件创建不同类型对象的场景。通过使用工厂模式,可以将对象的创建逻辑集中在一个工厂类中,而不是在客户端代码中分散处理。这样可以在不修改客户端代码的情况下扩展系统。

示例:

 

java复制代码

public interface Shape {
void draw();
}
public class Circle implements Shape {
public void draw() {
System.out.println("Inside Circle::draw() method.");
}
}
public class Rectangle implements Shape {
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
public class ShapeFactory {
// 返回Shape对象引用
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
return new Circle(); // 创建Circle对象并返回其引用。
} else if(shapeType.equalsIgnoreCase("RECTANGLE")){ // 如果需要添加新的形状,只需添加新的else if分支即可。
return new Rectangle(); // 创建Rectangle对象并返回其引用。
}
return null; // 如果输入的字符串既不是CIRCLE也不是RECTANGLE,则返回null。
}
}

文章来源:https://blog.csdn.net/dxl920807/article/details/135257187
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。