zoukankan      html  css  js  c++  java
  • 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");
        }
    
    
    
    
    
    }
  • 相关阅读:
    常用的站内搜索技术比较
    .NET中读取csv文件内容
    C#编码规范
    处理模型——检测光标是否在模型上
    数据库如何规范命名
    处理顶点——绘制三角形,线和点
    处理模型——根据地形正确倾斜模型
    处理顶点——使用索引移除冗余顶点
    处理顶点——在三角形上添加纹理
    处理模型——通过定义一个自定义的TypeWriter和TypeReader将多个对象存储在Tag属性中
  • 原文地址:https://www.cnblogs.com/chentingk/p/5996926.html
Copyright © 2011-2022 走看看