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进行投诉反馈,一经查实,立即删除!