针对入门案例的设计模式分析
主要分析的是main函数里面的各个步骤
代码语言:javascript复制 //1.读取配置文件 目的是将SqlMapConfig.xml的信息加载进去
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
/**链接数据库的信息*/
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
/**有了工厂就可以操作生产对象*/
SqlSessionFactory factory = builder.build(in);
//3.使用工厂生产SqlSession对象
// 只有Dao的接口没有具体功能的实现所以得想办法把实现加出来
SqlSession session=factory.openSession();
/**这个对象就可以操作数据库(非直接,用dao操作)*/
//4.使用SqlSession创建Dao接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
/**括号内的dao接口,我们只有dao接口所以要创建代理对象*/
//5.使用代理对象执行方法
List<User> users =userDao.findAll();
for(User user: users){
System.out.println(user);//打印的功能
}
//6.释放资源
session.close();
in.close();
解析 放大看图!!
名词解读
读取方式
一、采用ClassLoader方式进行读取配置信息
代码语言:javascript复制ClassLoader cl = 类名.class.getClassLoader();
优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息
缺点:只能加载类src下面的资源文件,不适合装载大文件,否则会导致jvm内存溢出
二、调用类加载器对象的方法
代码语言:javascript复制public InputStream getResourceAsStream(String name);
使用的是当前类的相对路径
设计模式
(后面写详细点附上链接 暂时大家可以看看其他人写的 不难理解
构建者模式
把对象的创建细节隐藏,是使用者直接调用方法即可拿到对象
工厂模式
降低类之间的依赖关系(解耦)
构代理模式
不修改源码的基础上对已有方法增强