马士兵的商城视频.给我答疑解惑了很多的问题.在这里感谢马老师,虽然别人看不到.现在就来给自己所学的从头捋一遍.
(老是自己和自己较劲,今天就自己给自己摆撤一次.)
自问:为什么使用sevice层(manager层)?
自答:业务逻辑层BEAN分为两种,实体BEAN和实体相关操作的BEAN.没有SERVICE之前都是写在一起的.比如 uers对象,有name password address和相关GET SET操作(实体BEAN)和login,logout,updatename,updatepassword (行为bean,自己起的名字).但是将USERS相关的行为单独放置在service中就更清晰化了.使得user类是个纯粹的JAVABEAN即POJO.
注:service使用静态工厂方法创建.
自问:为什么使用DAO层?
自答:
1.使用DAO就是实现了OR MAPPING,因为service是业务逻辑层,对每个操作都有不同编写,把对数据库相关的操作(or mapping)封装到DAO中.
2.为了更好的复用,使系统在数据库方面有更好的兼容性.
可针对不同数据库编写不同的DAO,为SERVICE提供使用.
注:SERVICE中使用factory来创建DAO实例.
service中使用private static ProductDAO dao =DAOFactory,getProductDAOInstance();来获得DAO,注意Product是支持各个数据库DAO的父类即INTERFACE.
对了还有service层很多的方法里面都是直接调用DAO中的相对应的方法的,所以service也称为dao的代理