zoukankan      html  css  js  c++  java
  • templateMethod(模板方法模式)

    MakeCar.java

    package edu.hhxy;
    /*
     * 组装车
     */
    public abstract class MakeCar {
        //组装车头
        public abstract void makeHead();
        
        //组装车身
        public abstract void makeBody();
        
        //组装车尾
        public abstract void makeTail();
        
        public void make() {
            this.makeHead();
            this.makeBody();
            this.makeTail();
        }
    }


    MakeBus.java

    package edu.hhxy;
    
    public class MakeBus extends MakeCar {
    
        public void makeBody() {
            System.out.println("bus:组装车身");
        }
    
        public void makeHead() {
            System.out.println("bus:组装车头");
        }
    
        public void makeTail() {
            System.out.println("bus:组装车尾");
        }
    }


    MakeJeep.java

    package edu.hhxy;
    
    public class MakeJeep extends MakeCar {
    
        public void makeBody() {
            System.out.println("jeep:组装车身");
        }
    
        public void makeHead() {
            System.out.println("jeep:组装车头");
        }
    
        public void makeTail() {
            System.out.println("jeep:组装车尾");
        }
    
    }


    MakeKa.java

    package edu.hhxy;
    
    public class MakeKa extends MakeCar {
    
        public void makeBody() {
            System.out.println("ka:组装车身");
        }
    
        public void makeHead() {
            System.out.println("ka:组装车头");
        }
    
        public void makeTail() {
            System.out.println("ka:组装车尾");
        }
        
    }

    MainClass.java

    package edu.hhxy;
    
    public class MainClass {
        public static void main(String[] args) {
            MakeCar bus = new MakeBus();
    //        bus.makeHead();
    //        bus.makeBody();
    //        bus.makeTail();
            bus.make();
            
            System.out.println("-------------------");
            
            MakeCar jeep = new MakeJeep();
    //        jeep.makeHead();
    //        jeep.makeBody();
    //        jeep.makeTail();
            jeep.make();
            
            System.out.println("-------------------");
            
            MakeCar ka = new MakeKa();
            ka.make();
        }
    }

    以下采用Spring配置方式

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
        <bean id="makeBus" class="edu.hhxy.MakeBus" />
        <bean id="makeJeep" class="edu.hhxy.MakeJeep" />
        <bean id="makeKa" class="edu.hhxy.MakeKa" />
    </beans>

    采用junit进行测试(MakeCarClassTest)(通过接口接收getBean,接收的bean可以是接口的实现类,需要哪个实现类,就get哪个实现类,低耦合)

    package edu.hhxy;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class MakeCarClassTest {
        @Test
        public void getCar() {
            ApplicationContext ctx = new ClassPathXmlApplicationContext(
                    "applicationContext.xml");
            MakeCar makeCar = (MakeCar) ctx.getBean("makeBus");
            System.out.println(makeCar);
        }
    }
  • 相关阅读:
    锚点定位跳转的各种实现方法
    css 布局之定位 相对/绝对/成比例缩放
    闭包,jQuery插件的写法:图片预加载
    mui 常见的效果
    根据浏览器内核判断是web/iOS/android/ipad/iphone 来打开不同的网站或页面
    有字库API方法使用一二
    tab 切换实现方法
    在线图片上传、预览、裁切、放大、缩小之 cropbox.js 的应用
    html + css3 demo
    jsfiddle 使用教程
  • 原文地址:https://www.cnblogs.com/jianfengyun/p/3720749.html
Copyright © 2011-2022 走看看