我的博客首页:http://blog.csdn.net/
我的GitHub首页:https://github.com/KissLouis


  1. 设计模式六大原则

    1. 开闭原则:对扩展开放,对修改关闭。即在不修改一个软件实体的基础上去扩展其他功能。
    2. 里氏代换原则:在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。
    3. 依赖倒转原则:针对于接口编程,依赖于抽象而不依赖于具体。
    4. 接口隔离原则:使用多个隔离的接口取代一个统一的接口。降低类与类之间的耦合度。
    5. 迪米特法则(最少知道原则):一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
    6. 合成复用原则:在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。
  2. J2ee常见设计模式,总共23种

    1. 创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
    2. 结构型模式(适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式)
    3. 行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
  3. 简单工厂模式

    1. 简单工厂模式又叫类的创新型模式,又叫静态工厂方法模型。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
    2. 简单工厂模式包含的角色
      1. 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品
      2. 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。
      3. 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
  4. 单例模式

    1. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
    2. 单例模式应用场景
      1. 重量级对象可以采用单例模式创建。例如配置文件解析器,连接工厂等等。
    3. 饿汉单例
      1. 线程安全,在类创建的同时就已经创建好一个静态对象供系统使用,以后不再改变。
    4. 懒汉单例
      1. 延时加载。在加载类时创建实例如果在创建实例对象时不加上synchronized 则会导致该对象的访问不是线程安全的。
  5. 单例模式的优缺点

    1. 优点:由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
    2. 缺点:由于单例模式中没有抽象层,因此单例类的扩展有很大的困难。滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

    //饿汉单例
    public class Singleton {

    private static final Singleton INSTANCE = new Singleton();
    
    // 私有化构造函数
    private Singleton() {
    };
    
    public static Singleton getInstance() {
        return INSTANCE;
    }
    

    }

    //懒汉单例
    public class Singleton {

    private static Singleton INSTANCE;
    
    // 私有化构造函数
    private Singleton() {
    
    public static Singleton getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new Singleton();
        }
        return INSTANCE;
    }
    

    }


常见面试题,还需补充。
如果本篇博文中存在问题,烦请指出,本人及时修改,谢谢阅读!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐