zoukankan      html  css  js  c++  java
  • 模版方法模式:封装算法 && 迭代器与组合模式:管理良好的集合

    1. 模版方法模式:将多个对象相同的算法抽象,泛化出来,形成超类,由这个超类维护相同的算法骨架,而子类实现具体的算法。

    一个简单的例子: 

    package src.TemplateMethod;
    
    /**
     * 模版方法:封装算法
     * 模版方法在一个方法中定义了算法的骨架,而将一些步骤延迟到子类中去具体完成。
     * 模版方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。
     */
    
    public abstract class CaffeineBeverage {
        final void prepareRecipe() {
            boilWater();
            brew();
            pourInCup();
            addCondiments();
            return;
        }
        void boilWater() {
            System.out.println("boiling water!");
        }
        void pourInCup() {
            System.out.println("pour into cup!");
        }
        abstract void brew();
        abstract void addCondiments();
    }
    
    
    public class Tea extends CaffeineBeverage {
        @Override
        void brew() {
            System.out.println("Steeping the tea");
        }
    
        @Override
        void addCondiments() {
            System.out.println("Adding Lemon");
        }
    }
    
    
    public class Coffee extends CaffeineBeverage {
        @Override
        void brew() {
            System.out.println("Dripping the coffee through filter");
        }
    
        @Override
        void addCondiments() {
            System.out.println("Adding sugar and milk");
        }
    }

    模版方法模式在很多框架中都很常见:由框架去控制如何做事情,而由你(框架的使用者)去指定框架算法中的每个步骤的细节。

    2.迭代器与组合模式:管理良好的集合

  • 相关阅读:
    页面布局
    导航栏nav的小例子
    块级元素和行内元素
    line-height的理解
    百度地图折线/线段点击不生效
    window系统上生成iosapp并且上架APPstore流程
    上架APPstore
    iOS证书(.p12)、描述文件(.mobileprovision)申请和HBuider打包及注意事项
    在vmware上安装mac os的虚拟机
    hbuilder X 使用苹果手机(ios)进行真机调试
  • 原文地址:https://www.cnblogs.com/shawshawwan/p/9279469.html
Copyright © 2011-2022 走看看