`
lixjluck
  • 浏览: 101619 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一种无名的设计模式

 
阅读更多

问题

常见一个门面实现类,融合了N多的if/else,遂抽取了这种设计模式

 

类图



 伪代码

//Facade
public void process(String key, Object...){
        DataHandler handler = dataHandlerFactory.factory(key);
        if (handler != null) {
            try {
                handler.handle(memberId, obj);
            } catch (Exception e) {
                log.error("Handle auth data sync", e);
            }
         } 

 

   //DefaultHandlerFactory

public Handler factory(String key) {
        
        return handlerMap.get(key);
}

public void register(String key, Handler handler) {
        handlerMap.put(key(dataType, dataStatus), handler);
}

 

\\AbstractHandler

    public void registerSelf() {
        dataHandlerFactory.register(key(),  this);
    }

    /**
     * spring bean初始化后此方法被调用
     */
    @Override
    public void afterPropertiesSet() throws Exception {
        registerSelf();
    }

   public abstract String key();
 
  • 大小: 126.1 KB
0
1
分享到:
评论

相关推荐

    操作系统实验

    请求页式管理是一种常用的虚拟存储管理技术。本设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。要求: (1)通过随机数产生一个指令序列,共...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    他是我国计算机普及和高校计算机基础教育开拓者之一,现任全国高等院校计算机基础教育研究会会长、教育部全国计算机应用技术证书考试委员会主任委员。 谭浩强教授创造了3个世界纪录:(1)20年来他(及和他人合作)...

    Hacking Vim

    不知道是谁 说过一句话:说世界上的程序员分为三种,一种是使用VIM的,还有一种使用Emacs的,剩下的都是第三种。由此可见VIM的强大程度,可以说,这是一款非常适合程序员使用的编辑器。VIM的设计哲学是如果你的工作...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    他是我国计算机普及和高校计算机基础教育开拓者之一,现任全国高等院校计算机基础教育研究会会长、教育部全国计算机应用技术证书考试委员会主任委员。 谭浩强教授创造了3个世界纪录:(1)20年来他(及和他人合作)...

    你必须知道的495个C语言问题

    到底指针是一种数组,还是数组是一种指针? 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“表达式”。这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组...

    你必须知道的495个C语言问题.pdf

    2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些冒号和数字是...

    《你必须知道的495个C语言问题》

    2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 30 枚举 31 2.23 枚举和一组预处理的#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号的容易方法吗? 31 位域 31 2.26 ...

    UNIX操作系统教程 张红光

    第1章绪论.1 1.1操作系统概述1 1.1.1建立操作系统的目标1 1.1.2操作系统是用户与计算机的接口1 1.1.3操作系统是资源管理器2 1.2UNIX系统的主要...UNIX基本概念及入门技术10 2.1UNIX系统基本常识10 2.1.1两种前端机10 />...

Global site tag (gtag.js) - Google Analytics