模板模式

软件设计模式 是 对设计经验的一种经验总结,它只是告诉你,遇到这种问题的时候,可以使用这种方式更好地解决你所遇到的问题。所以设计模式充其量就是一种解决方案,也许你叫不出它的名字,但可能你天天在使用它,因为你的解决方案也是一种模式,只是有好坏之分而已。
示例代码github地址

模板模式是一种很常见的模式,当一件事件有一套明确的的流程时,我们可以对该事务进行抽象,封装成模板。

比如王婆,作为中国历史上最负盛名的媒人[成功案例:成功撮合 潘金莲与西门庆],要撮合一堆新人,王婆信手拈来讲解她的经验,要成功撮合一堆新人:

  1. 首先需要充分了解男女双方的喜好
  2. 安排双方见面互相了解
  3. 给男女双方互讲优点,让男女双方互有好感
  4. 收钱走人

让我们看看,使用代码如何实现这个模板模式:

以下是来自王婆的说媒经验,我们把它奉为法典[模板]

package com.deity.test.template;

/**
 * 说媒经验模板,作者 王婆,假冒伪劣 必究法律责任
 * Created by Deity on 2017/1/12.
 */

public abstract class AbsMatchMaking {
    /**调查双方喜好*/
    public abstract void research();
    /**邀约双方会面*/
    public abstract void invitation();
    /**给男女双方互讲优点,让男女双方互有好感*/
    public abstract void advantage();
    /**获取报酬*/
    public abstract void obatinMoney();

    public void matchMaking(){
        research();
        invitation();
        advantage();
        obatinMoney();
    }
}

王婆亲自教授小编 如何说媒

package com.deity.test.template;

/**
 * 王婆 亲自出马 撮合 西门庆与潘金莲
 * Created by Deity on 2017/1/12.
 */

public class XiMenQingAndPanJinLianImpl extends AbsMatchMaking {
    /**
     * 调查双方喜好
     */
    @Override
    public void research() {
        System.out.println("西门庆喜欢 漂亮、36D的美女、潘金莲 喜欢有权势的男人[情报Get]");
    }

    /**
     * 邀约双方会面
     */
    @Override
    public void invitation() {
        System.out.println("王婆:西门庆大官人来 我王婆家看个漂亮、36D的美女呗,西门庆:好呀!如入我法眼,给你冲个企鹅VIP");
        System.out.println("王婆:潘,来我家做寿衣吧,做寿衣的官人是个有权有势的大户人家,潘金莲:好呀!");
    }

    /**
     * 给男女双方互讲优点,让男女双方互有好感
     */
    @Override
    public void advantage() {
        System.out.println("王婆:@#$@#$$#^$%&^%*&%^*%^&%^&% 潘金莲:我对这个物品的满意度100% 西门庆:我的大刀早已饥渴难耐");
    }

    /**
     * 获取报酬
     */
    @Override
    public void obatinMoney() {
        System.out.println("恭喜你!获得一项成就,赠送价值288元的QQ游戏礼包,王婆:我去....");
    }
}

小编在深刻学习了王婆的经验后

package com.deity.test.template;

/**
 * 小编根据王婆的经验尝试撮合 读者与凤姐
 * Created by Deity on 2017/1/12.
 */

public class ReaderAndFengJieImpl extends AbsMatchMaking {
    /**
     * 调查双方喜好
     */
    @Override
    public void research() {
        System.out.println("凤姐:必须为北京大学或清华大学硕士毕业生。必须本科硕士连读,中途无跳级,不留级,不转校。在外参加工作后再回校读书者免等");
        System.out.println("读者:我想结婚,喜欢女的");
    }

    /**
     * 邀约双方会面
     */
    @Override
    public void invitation() {
        System.out.println("小编对凤姐说: 读者是哈佛硕士");
        System.out.println("小编对读者说: 凤姐是女的");
    }

    /**
     * 给男女双方互讲优点,让男女双方互有好感
     */
    @Override
    public void advantage() {
        System.out.println("小编对凤姐说: 有人符合你的要求");
        System.out.println("小编对读者说: 有个女的");
    }

    /**
     * 获取报酬
     */
    @Override
    public void obatinMoney() {
        System.out.println("获得成就,被读者感恩戴德,获得100金");
    }
}
@Test
    public void templateTest(){
        AbsMatchMaking 王婆 = new XiMenQingAndPanJinLianImpl();
        王婆.matchMaking();
        /**小编学习了王婆的经验后,跃跃欲试,毕竟有现成的模板告诉小编 怎么成为一个成功的 媒人,看小编如何撮合读者跟凤姐*/
        AbsMatchMaking 小编 = new ReaderAndFengJieImpl();
        小编.matchMaking();
    }
感谢模板让我又成功了一单

注:在此并无贬低凤姐的意思,在我看来凤姐是一个很有思想深度的人,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 设计模式是一个处理软件设计中常见问题的解决方法,并可以重复使用。它向开发者提供了设计模板,使开发者更容易写出逻辑清...
    ZhengYaWei阅读 639评论 0 3
  • 定义 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况...
    风水里游阅读 292评论 0 2
  • 设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...
    leehoo阅读 4,233评论 1 24
  • 1.模板方法模式概念 模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板...
    lgy_gg阅读 676评论 0 2
  • 凡你能说的,你说清楚;凡你不能说清楚的,留给沉默
    kszcgb阅读 134评论 0 0