zoukankan      html  css  js  c++  java
  • 设计模式之模板方法模式(TemplateMethod)

    代码是用java写的 看了本java书发现他的思想确实是先进!!!

    主要还是继承和抽象方法的一些应用看代码吧,我不喜欢扯淡,是干啥的百度都有。

    意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    反正我之前是看不懂的 ,反之我知道能延迟加载就延迟加载。

    第一个类 模板类

    public abstract class DBhple {
        public void coonection() {
            PUT();
            GET();  
            POST();  
            DELETE();
        }
                
        public abstract void PUT();
        
        public abstract void GET();   
        
        public abstract void POST();   
        
        public abstract void DELETE();
    }

    继承:他的抽象方法

    public class MSSQLDB extends DBhple {
    
        @Override
        public void PUT() {
            // TODO Auto-generated method stub
            System.out.println("来自S的修改");
        }
    
        @Override
        public void GET() {
            // TODO Auto-generated method stub
            System.out.println("来自s查找");
        }
    
        @Override
        public void POST() {
            // TODO Auto-generated method stub
            System.out.println("来自s创建");
        }
    
        @Override
        public void DELETE() {
            // TODO Auto-generated method stub
            System.out.println("来自so删除");
        }
    
    }
    public class OracleDB extends DBhple {
    
        @Override
        public void PUT() {
            // TODO Auto-generated method stub
          System.out.println("来自o的修改");
        }
    
        @Override
        public void GET() {
            // TODO Auto-generated method stub
            System.out.println("来自o查找");
        }
    
        @Override
        public void POST() {
            // TODO Auto-generated method stub
            System.out.println("来自o创建");
        }
    
        @Override
        public void DELETE() {
            // TODO Auto-generated method stub
            System.out.println("来自o删除");
        }
    
    }

    客户端 

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            /*
             * DBhple sdb1=new MSSQLDB(); sdb1.DELETE(); sdb1.GET(); sdb1.POST();
             * sdb1.PUT();
             * 
             * DBhple odb2=new MSSQLDB(); odb2.DELETE(); odb2.GET(); odb2.POST();
             * odb2.PUT();
             */
            Db(new MSSQLDB());
            Db(new OracleDB());
        }
        
        
        public static void Db (DBhple db) {
            db.coonection();
        }

    注释起来的垃圾代码是以前不动脑子的实现方案 

    反正实例化了加在那.....是不会错的,严重冗余。

    看了半本java确实他的思想确实很先进(书名叫Java的核心思想卷一)

  • 相关阅读:
    《一个人的村庄》 ——刘亮程
    uva 11020
    Codeforces Round #190 (Div. 2) B. Ciel and Flowers
    hdu3308 线段树——区间合并
    线段树,区间更新
    vim 被墙
    ubuntu12.04 修复Grub2
    windows下mysql数据库忘记密码
    高性能的异步爬虫
    中间件
  • 原文地址:https://www.cnblogs.com/yijieyufu/p/12399312.html
Copyright © 2011-2022 走看看