• OOP,WEB开发实用小技巧


      偶然读到一篇博客,记录一下心得。这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽。这是不是重构的思想呢?

      我们在写业务层的时候,有很多方法是重复功能的,我们就可以使用泛型和继承等来减少荣域代码。

      下面是例子,它的思想就是把大量的公共代码全部做成基础类,比如增删查改。

      而增加的方法就专注于定义自身,不必再实现原来的方法。

    package oop;
    
    public interface BaseService <T>{
        public void add(T obj);
        public void delete(T obj);
        public void update(T obj);
    }
    package oop;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    
    public class BaseServiceImpl<T> implements BaseService<T>{
        private SessionFactory ssf;
        public BaseServiceImpl(){
            System.out.println("基础服务类启动");
        }
        
        public SessionFactory getSsf() {
            return ssf;
        }
        //spring会注入
        public void setSsf(SessionFactory ssf) {
            this.ssf = ssf;
        }
        //获取当前线程的session
        protected Session getSession(){
            return ssf.getCurrentSession();
        }
        //基础服务方法
        @Override
        public void add(T obj) {
            // TODO Auto-generated method stub
            this.getSession().save(obj);
        }
    
        @Override
        public void delete(T obj) {
            // TODO Auto-generated method stub
            this.getSession().delete(obj);
        }
        @Override
        public void update(T obj) {
            // TODO Auto-generated method stub
            this.getSession().update(obj);
        }
    
    }
    package oop;
    
    public interface UserService<T> extends BaseService<T>{
        public void addMethod1();
        public void addMethod2();
    }
    package oop;
    
    public class UserServiceImpl extends BaseServiceImpl<Object> implements UserService<Object>{
    
        public UserServiceImpl(){
            System.out.println("扩展类启动");
        }
        @Override
        public void addMethod1() {
            // TODO Auto-generated method stub
            System.out.println("method1");
        }
    
        @Override
        public void addMethod2() {
            // TODO Auto-generated method stub
            System.out.println("method2");
        }
    
    
    
    
    
    }
  • 相关阅读:
    VSCode的终端修改
    vim总结
    分布式的CAP理论
    MongoDB常用命令总结
    nginx负载均衡总结
    【重要】nginx location配置和rewrite写法
    Linux四剑客find/grep/awk/sed
    IDEA插件开发总结
    支付宝在线支付接口开发流程
    Centos7 网卡Device does not seem to be present解决办法
  • 原文地址:https://www.cnblogs.com/chentingk/p/5996926.html
Copyright © 2020-2023  润新知