八股已死、场景当立(场景篇-设计模式篇)

       面试系列的八股和场景篇更新到这里就结束了,感谢大家的认可和喜欢,但是由于面试题实在是多种多样、层出不穷,况且精力有限无法穷尽这些题目,更多的面试内容欢迎私聊获取。下期就开始从头梳理java体系的知识点了。

 一、场景篇-设计模式篇

1、Q:设计一个日志记录器,确保系统中只有一个日志记录器实例,所有日志请求都通过该实例处理?

   A:单例模式确保一个类只有一个实例,并提供一个全局访问点。实现方式可以是饿汉式或懒汉式。例如,使用双重检查锁实现线程安全的懒汉式单例:



public class Logger {
    private static volatile Logger instance;
    
    private Logger() {}
    
    public static Logger getInstance() {
        if (instance == null) {
            synchronized (Logger.class) {
                if (instance == null) {
                    instance = new Logger();
                }
            }
        }
        return instance;
    }
}

2、Q: 创建一个图形工厂,能够根据输入创建不同的图形对象(如圆形、矩形、三角形)

A:工厂模式通过工厂类创建对象,避免了直接使用new关键字。例如:



interface Shape {
    void draw();
}
 
class Circle implements Shape {
    public void draw() {
        System.out.println("Drawing a circle");
    }
}
 
class Rectangle implements Shape {
    public void draw() {
        System.out.println("Drawing a rectangle");
    }
}
 
class ShapeFactory {
    public Shape getShape(String type) {
        if (type == null) {
            return null;
        }
        if (type.equalsIgnoreCase("CIRCLE")) {
            return new Circle();
        } else if (type.equalsIgnoreCase("RECTANGLE")) {
            return new Rectangle();
        }
        return null;
    }
}

3、Q: 设计一个汽车制造系统,能够根据不同的品牌创建不同的汽车类型(如轿车、SUV)

A:抽象工厂模式提供一个接口,用于创建相关或依赖的对象簇。例如:


interface Car {
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
hyiib的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容