Mybatis運用到的3種設計模式


Mybatis運用到的3種設計模式

1.構造者模式
2.工廠模式
3.代理模式
1.構造者模式

使用SqlSessionFactoryBuilder,根據核心配置文件,構造一個SqlSessionFactory對象出來
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
1
2
構造者模式:用於構造一個對象,它的重點在於根據配置文件,或者參數,定制一個對象出來
好處:可以把定制對象的復雜過程隱藏起來,只要調用一個方法,把配置文件/參數傳遞進去,就可以得到根據參數定制的對象。
Mybatis里的應用:
有一個構造者SqlSessionFactoryBuilder,給構造者不同的配置文件信息,構造者能夠給我們構造出來不同的SqlSessionFactory對象
根據傳遞進去的參數/配置文件,定制的SqlSessionFactory對象
2.工廠模式

使用SqlSessionFactory,生產一個SqlSession對象出來
SqlSession session = factory.openSession();
1
工廠模式:用於代替new操作的一種模式,是一種最常用的實例化對象的模式了。
好處:可以降低程序之間的耦合性,提高應用的可擴展性,在功能維護時盡量少的代碼修改
和構造者的區別:
構造者模式:根據參數/配置文件,定制一個對象出來;重點在與定制對象
工廠模式:批量生產同一類對象,代替new操作,用於解耦合;重點在於解耦合
3.代理模式

使用SqlSession獲取UserDao的代理對象,通過代理對象實現增刪改查的操作
UserDao dao = session.getMapper(UserDao.class);
1
代理模式:在某些情況下,一個對象不適合或者不能直接調用另外一個對象,就可以使用代理對象作為中介直接調用。
好處:
職責清晰, 被代理對象只要完成自己的業務邏輯,不需要關心其他非本職事務;通過代理對象來完成功能的擴展。附帶的后果就是編程簡潔、清晰
高擴展性。
Mybatis里代理模式的應用:
沒有被代理的目標對象(映射器接口沒有實現類對象),所有工作由代理對象來完成
好處:我們只要提供接口即可,不需要再編寫實現類代碼了,Mybatis使用更簡單了

————————————————
版權聲明:本文為CSDN博主「jy沒空理你」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_42705210/article/details/96346521


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM