博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工厂模式在mvc模型中的应用
阅读量:7121 次
发布时间:2019-06-28

本文共 2378 字,大约阅读时间需要 7 分钟。

在web开发中我们常用mvc模式进行web应用的开发

当应用进入service 层的时候我们根据不同的业务多逻辑进行处理

 

 

当有数据进入controller的时候

public class VirtualController {
private static Service service = CommonFactory.getFactory().getInstance(Service.class); public static void main(String[] args) { User nuser= new User(); nuser.setName("李某"); service.insert(nuser); } }

 

首先是实体类

public class User {    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    private String name;}

 

所以到我们定义一个service 的接口 处理所有用户的业务

 
//也就是相当于子工厂
public interface Service {
public void insert(User user); public void deldte(User user); } //子工厂的实现
public class UserService implements Service{
private Dao dao = CommonFactory.getFactory().getInstance(Dao.class); @Override public void insert(User user) { System.out.println("普通用户业务"); dao.insert(user); } @Override public void deldte(User user) { } }
public class VipService implements Service{
private Dao dao = CommonFactory.getFactory().getInstance(Dao.class); @Override public void insert(User user) { System.out.println("Vip用户业务"); } @Override public void deldte(User user) { } }

 Dao层

public interface Dao {
public void insert(User user); public void deldte(User user); }
public class MysqlDao implements Dao{
@Override public void insert(User user) { System.out.println("Mysql 插入用户信息 "+ user.getName()); } @Override public void deldte(User user) { } }
public class OrcalDao implements  Dao{
@Override public void insert(User user) { System.out.println("Mysql 插入用户信息 "+ user.getName()); } @Override public void deldte(User user) { } }

 工厂的实现

public class CommonFactory {
private Properties properties=new Properties(); private CommonFactory(){}; private static CommonFactory factroy= new CommonFactory(); public static CommonFactory getFactory(){ return factroy; } public
T getInstance(Class
clazz) { try { properties.load(new FileInputStream("C:\\Users\\Administrator.TEDU-20180130RP\\IdeaProjects\\springboot\\hello\\resource\\config.properties")); String _className=clazz.getSimpleName(); String className=properties.getProperty(_className); return (T) Class.forName(className).newInstance(); } catch (Exception e) { e.printStackTrace(); return null; } } }

 这样我们就可以通过修改配置文件进行对不同业务的处理,也好像是tomcat 以及jdbc的原理

 

转载于:https://www.cnblogs.com/qxhn/p/9124632.html

你可能感兴趣的文章
C++与MySQL的冲突
查看>>
C# 文件操作类1
查看>>
[unity3d]鼠标拖动and旋转缩放
查看>>
VS2008 使用小技巧 提高编程效率
查看>>
安装Operations Manager代理程序
查看>>
详解Spring MVC 4之ViewResolver视图解析器
查看>>
解析和生成Excel报表方法汇总::.NET发现之旅(七)
查看>>
活动目录设计中需要遵循的七个原则
查看>>
【STM32 .Net MF开发板学习-04】TinyGUI位图显示
查看>>
NoSQL数据库简介
查看>>
Kevin Systrom和他的Instagram
查看>>
Oracle优化:千万级大表逻辑判断的累赘
查看>>
研讨会记录|与Xamarin工作簿研讨会探索UrhoSharp 3D
查看>>
Java事务处理类(源码)
查看>>
JAVA 设计模式 访问者模式
查看>>
SQL Server清空日志及所有表的数据
查看>>
浅谈ThreadPool 线程池
查看>>
J2EE实现XML文件的读取与导出(源码)
查看>>
Azure Backup (2) Azure备份服务
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>