Template Method design pattern (TemplateMethod)

Code is written in java java read this book found that his ideas really advanced! ! !

Some applications and mainly inherited abstract method of looking at the code, and I do not like crap, is doing the Baidu have.

Intent: skeleton algorithm defined in one operation, while deferring some steps to subclasses. Template Method lets subclasses may not change the structure of certain steps of an algorithm of the algorithm to redefine.

Anyway, I had not read, whereas I know can lazy load on lazy loading.

The first class template class

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(); }

 

Inheritance: his abstract method

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删除"); } }

Client 

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();
    }

Notes up garbage before the code is not mindless implementation 

Anyway instantiated added that ..... was wrong, serious redundancy.

This java really looked half his ideas really advanced (book called Java core idea Volume)

 

Guess you like

Origin www.cnblogs.com/yijieyufu/p/12399312.html