面试:你都在项目中用了哪些设计模式?

准备实习找工作,个人准备一下。

  • 单例模式
    在项目中用过单例模式,比如在刚开始学习mybatis框架的时候,那时候还没有整合spring框架,所以SqlSessionFactory还是需要自己去创建的,当时知道SqlSessionFactory是重量级的对象,所以为了提高性能,我是把单例模式用到了创建SqlSessionFactory这个对象中的。

  • 工厂模式
    在答题系统中创建目录时用到了抽象工厂模式,做了一个目录抽象工厂,因为在创建大量课程的时候,可能也会创建大量的目录级别,所以就做了个抽象工厂专门生成目录,没用抽象工厂时,就是我可以直接把客户端请求创建的目录直接交给抽象工厂创建,不用在业务类进行判断创建,降低了耦合性吧,还有就是万一系统需要更多一级的目录,比如四级目录的话,我可以直接在抽象工厂写多一个抽象方法就行了,易于系统的扩展我觉得。 之所以交给抽象工厂还因为面向对象的五个基本原则,单一原则。

abstract class Factory{
    abstract public static function createOne();  //创建一级目录
    abstract public static function createTwo();  //创建二级目录
}

class ProductFactory extends Factory{
    public static function createOne(){
    return new FirstCategory();
    }
public static function createTwo(){
    return new SecondCategory();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_31279347/article/details/82462336
今日推荐