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

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

  • 单例模式
    在项目中用过单例模式,比如在刚开始学习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();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值