准备实习找工作,个人准备一下。
单例模式:
在项目中用过单例模式,比如在刚开始学习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();
}
}