zoukankan      html  css  js  c++  java
  • 工厂模式在mvc模型中的应用

    在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> T getInstance(Class<T> 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的原理

  • 相关阅读:
    demo_10_02 云数据库聚合_bucket_02 bucketAuto
    demo_10_02 云数据库聚合_bucket_01
    nginx 启动脚本
    grep 全局搜索打印命令
    ulimit shell启动进程所占用的资源命令
    nginx 一键安装
    安装 nginx
    学习笔记::杜教筛
    markdown测试
    bzoj4589
  • 原文地址:https://www.cnblogs.com/qxhn/p/9124632.html
Copyright © 2011-2022 走看看