• 工厂模式在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的原理

  • 相关阅读:
    MVC是什么意思?
    Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
    人人网
    百度框计算研究
    最近总被黑。然后。。发现了很多知识值得学习。。分享出来。
    首次购房契税下调至1% 首付降为20%
    由“百鸡问题”浅谈程序性能
    10月1日起机动车所有人可自行编排车牌号
    08中国互联网大会23在南京开幕
    MySQL联合创始人向Sun递交辞呈
  • 原文地址:https://www.cnblogs.com/qxhn/p/9124632.html
Copyright © 2020-2023  润新知