java常见面试题:请解释一下Java中的常用设计模式,如单例模式、工厂模式、观察者模式等。
2024-01-01 20:22:47
Java中的常用设计模式是一组经过反复使用、多数人认可的软件设计经验,它可以解决特定的问题或提供一种通用的解决方案。下面将对单例模式、工厂模式和观察者模式进行详细解释,并提供示例代码。
- 单例模式(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; | |
} | |
} |
- 工厂模式(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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!