使用Facade(外观)模式改善现有软件设计—混乱变简单

Facade(外观)模式就是定义一个接口,之后把乱七八糟的类提统一起来,提供一个统一的接口:

[img]http://dl.iteye.com/upload/attachment/174352/f5303d9a-0721-3283-a182-b38b98c5c5fc.jpg[/img]


DAO层看起来更像个外观。我们一般把DAO层封起来,之后就业务层去掉用它。比如:

public interface GenericDAO<T extends Serializable, PK extends Serializable> {



public List<T> FindAll(String WHERE);


public T findById(PK id);


public List<T> findByPageParam(final int currPage,final LinkedHashMap args);

public List findByHQLCache(final String HQL,final String CacheRegion);


public List findByNSQL(final String SQL);


public int getCount(LinkedHashMap args);


public T getWithLock(PK id, LockMode lock);


public T load(PK id);


public T loadWithLock(PK id, LockMode lock);


public List<T> loadAll();


public void update(T entity);


public void deleteWithLock(T entity, LockMode lock);

//等等代码

}


之后在业务层去调用这些方法,而这些方法本身也许基于不同的实现方法,比如基于SESSION对象的,基于SPRING TEM的,等等。
【DesignMode】外观模式 (facade patterns) 基本介绍外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口 提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用 以屏蔽内部子系统的细节,使得 调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节组建一个家庭影院:DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影仪开音响开 DVD,选 dvd去拿爆米花调暗灯光播放观影结束后 阅读详情

相关推荐

问题:dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

 1. 问题:Ubuntu安装软件的过程中出现依赖项的问题 “E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).” 按照指示执行如下两条命令都没有解决问题。 sudo apt-get -f install sudo apt-get --fix-broken ...

gloria_littlechi的博客 2万+

设计模式之外观模式-与单一职责的PK(Facade)

问题 在我的电脑城里,为了提高效率,专门设有销售人员,收银人员,组装人员,打包人员等等。客户进来购买电脑的时候,先找销售人员,确定好组装配件,销售人员将单子给到客户,让客户拿着单子到收银人员买单,再让客户拿着收银单到组装人员那里去做配件组装。。。听起来很流畅,效率很高。但是呢,客户不高兴了,说:把你们老板给我叫出来,对着我就是一顿骂:你这老板怎么回事,我就买个电脑,你让我从这跑到那,再跑到那,累都累死了,你就这么对待上帝的嘛。我这么一想,确实是不行啊,怎么能让顾客来回跑呢。那我就使用外观模式来解决客户问题啊

u012933335的博客 521

RAW、RGB、YUV图像格式的采样与存储原理详解

本文详细解析了RAW、RGB和YUV三种核心图像格式的采样与存储原理。RAW是传感器原始数据,信息完整但需后期处理;RGB直接对应显示,直观但数据量大;YUV通过亮色分离与色度下采样,在保证观感的前提下大幅提升传输与存储效率,是视频编码与流媒体的主流格式。理解其差异是图像处理与视频开发的基础。

e4f5g6h7的博客 516

设计模式——外观模式(Facade)

外观模式又称门面模式,这是我们在开发过程中经常会用到的一种设计模式,很多时候甚至我们在使用这种设计模式的时候自己都没有意识到,因为这种设计模式的思想非常的简单,笔者也是最近在学习设计模式的时候才知道这种方式叫做外观模式。 一、外观模式概念 外观模式(Facade)属于结构型设计模式,它通过向客户端提供一个可以访问系统的接口,向客户端屏蔽系统底层的复杂实现,使客户端可以只用关注这个接口的功能,从...

mc695192383的博客 772

COCOS 3.8 接入高德定位SDK

/微信登录所必须的code。//是否获得code。

八喜互动 1993

ESP32-C3芯片通过蓝牙控制开锁功能

定义BLE服务和特征,用于接收开锁命令。0x00FF// 服务UUID0xFF01// 特征UUID4// 句柄数量// 特征值// 特征属性// 处理GATT服务器事件// 处理事件(详细代码见下文)// 注册GATT回调if (ret) {return;// 创建GATT服务器。

m0_46145044的博客 921

Java 外观模式(Facade )增强你的架构

您将学习制作优雅的 Facade 界面的最佳实践,以及在不损失灵活性的情况下使用 Facade 的实用技巧。使用 Facade 对象,您可以只公开所需的功能,从而使您的代码更易于管理。它们提供了一种经过验证的标准化方法来解决特定的设计问题,使开发人员能够更轻松地创建强大、可维护且可扩展的软件系统。通过使用经过验证的模式,开发人员可以避免常见的陷阱和错误,从而加快开发速度并提高整体性能。通过我们的深入解释和实际示例揭示 Java Facade 模式的简单性 - 简化您的代码并增强您的架构。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 1944

Windows环境下pcl点云库 安装配置全流程(精简、有效)

本文为Windows配置点云库pcl步骤,具体是win10、visual studio 2017、pcl1.11.1。

zaibeijixing的专栏 1万+

设计模式_外观模式_Facade

外观模式,也叫“过程模式”外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得各个子系统更加容易使用使用外观模式可以为互相关联在一起的错综复杂的类整理出高层接口(API)。其中的Facade角色可以让系统对外只有一个简单的接口(API)。而且,Facade 角色还会考虑到系统内部各个类之间的责任关系和依赖关系,按照正确的顺序调用各个类。定义一个一致的接口,用于屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。

皮球 1047

k8s学习笔记(3)--- kubernetes核心技术概念

kubernetes核心技术概念 1.API对象         API对象是K8s集群中的管理操作单元。K8s集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作。例如副本集Replica Set对应的API对象是RS。 2.集群(Cluster)         集群是指由...

梦谜的博客 1291

Linux安装消息队列IBM MQ 7.5开发版安装配置详解

消息队列IBM MQ 7.5开发版安装配置详解 文章目录消息队列IBM MQ 7.5开发版安装配置详解前言一、什么是IBM MQ?二、安装前准备1、安装前准备2、安装MQ Server3、启动实例4、创建队列一个名为TEXT的队列(测试)5、启动端口监听6、启动成功总结 前言 IBM 已经熟练地优化了 MQ(消息队列),在市场上已有超过 25 年的历史。借助 MQ(消息队列),如果无法立即传递消息,那么会在其等待队列中确保消息安全,直到保证传递为止。竞争产品可能会传递两次消息或根本不传递消息,而 M

zhx__的博客 5165

Java设计模式-外观模式

介绍Java设计模式之一外观模式,外观模式通过定义一个一致的接口(界面类),用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节

m0_62946761的博客 3859

银行一表通监管报送系统详解

国家金融监管总局对于“一表通”的总体描述为:通过建立一套明细级、标准化的数据体系和汇总计算规则,将银行机构传送至监管可信区的业务明细数据汇总生成财务指标、监管指标和监管报表,大幅提升监管数据时效性,统一数据标准,实现数据间的穿透和整合,同时改变机构多头报送数据模式,减轻机构报送负担。

银行信息系统应用架构详解 2518

设计模式 -- 外观模式(Facade Pattern)

外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。综上所述,外观模式提供了一种高效的管理树形结构的方式,适用于各种具有层次结构的场景。虽然其设计和实现相对复杂,但其带来的好处是显著的。在选择使用组合模式时,还是需要根据具体需求来决定其适用性。

xiaoyu❅的博客 1017

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java设计模式——外观模式【Facade Pattern】

Java设计模式、外观模式、Facade Pattern

scorpio的博客 560

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

6.5 外观模式(Facade Pattern)

外观模式

NorthStar的博客 657

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【设计模式】结构型模式—外观模式/门面模式(Facade Pattern)(八)

**门面模式(Facade Pattern),又被称之为外观模式。该模式提供一个统一的接口,用来访问相同子系统或者不同子系统之中的一群接口。使得子系统更加容易调用。** - 可以理解为将多个接口功能组合到一个接口中,使得客户只要调用一个接口,而不用调用多个接口就能达到目的。避免外部直接访问具体的业务方法 - 解决多个复杂接口带来的使用困难,起到简化用户操作的作用

墩墩分墩 544

秒懂设计模式之外观模式(Facade Pattern)

[版权申明] 非商业目的注明出处可自由转载 博文地址: 出自:shusheng007 设计模式汇总篇,一定要收藏: 永不磨灭的设计模式(有这一篇真够了,拒绝标题党) 文章目录概述类型难度定义使用场景UML 类图实例第一步,确定需要调用的子模块第二步,创建外观类第三步,客户端使用技术要点总结优缺点优点缺点总结 概述 Facade Pattern 有时也翻译成面板模式,是一个使用频率极高的设计模式。思想非常简单,对外提供简单的交互接口,隐藏内部的复杂性。 这在现实世界实在是太常见了,只要世界发生了混乱,这个.

ShuSheng007的程序人生 2247

Java外观模式(Facade)

一、引出一个组建一个家庭影院问题: 家庭影院中有DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为: • 直接用遥控器:统筹各设备开关 • 开爆米花机 • 放下屏幕 • 开投影仪 • 开音响 • 开DVD,选dvd • 去拿爆米花 • 调暗灯光 • 播放 • 观影结束后,关闭各种设备 二、利用传统的方法解决影院管理 传统方式解决影院管理问题分析 在ClientTest 的main方法中,创建各个子系统的对象,并直接去调用子系统(对象) 相关方法,会造成调用过程混乱

weixin_44256581的博客 281

设计模式(十一)——外观模式(Facade Pattern)

外观模式(Facade Pattern) 基本介绍 外观模式(Facade),也叫“过程模式,为子系统中的一组接口提供一个一致的入口,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(封装子系统的复杂性,便于客户端调用)。 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。 外观模式的UML类图 角色分析 ...

Duktig的博客 428

Java 设计模式心法之第13篇 - 外观 (Facade) - 简化复杂入口

外观模式 (Facade Pattern)提供了一种简洁有效的解决方案。它为子系统中的一组接口提供了一个统一的高层接口,使得子系统更加容易使用。GoF 的经典意图描述是:“为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。Facade 类知道子系统中哪些类负责处理请求。Facade 将客户端对子系统的复杂调用流程(可能涉及多个子系统对象的创建、配置和方法调用)封装在其内部的方法中。Facade 向客户端提供一个更简单、更高级别。

码觉客的博客 998

Java设计模式—外观模式(Facade)

1

super_song的博客 949

设计模式——外观模式的学习与理解

什么是外观模式 外观模式( Facade),也叫“过程模式:外观模式为子系统中的一组接口提供个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,并且屏蔽了内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。 通俗的说:要实现一些连续的操作,外观模式可以使客户只需调用一个接口来而不是多个接口来达成目的。比如安装软件时的一键安装,安全软件的一键加速等。 案例 .在计算机主机( Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设

qq_44025396的博客 2833

设计模式--外观模式(facade)

一 引入 现在要组件一个多家庭影院,包含设备投影仪、自动屏幕、播放器和音响等。其过程包括放下屏幕、开投影仪、开音响、开播放器,观影结束后,关闭各种设备. 1.1 传统解决方案 客户端直接调用子系统 存在问题 创建各个子系统的对象,并直接去调用子系统(对象)相关方法,会造成调用过程混乱,没有清晰的过程,不利于客服端去维护子系统的操作 1.2 解决方案 定义一个接口界面类,提供一个一致的界面(如提供四个方法ready、play、pause、end)来操作访问各子系统,屏蔽掉子系统的内部细节,使得客户端调用

Instanceztt的博客 310

设计模式 · 外观模式(Facade Pattern)

外观模式通过提供统一的高层接口,封装复杂子系统的调用流程。本文以视频格式转换为例,展示了客户端直接调用多个底层类带来的问题:依赖过多、流程复杂、代码重复。通过引入外观类VideoConversionFacade,将编码器选择、视频读取、格式转换等步骤封装起来,客户端只需调用convertVideo方法即可完成转换,无需了解内部实现细节。该模式有效降低了系统耦合度,提高了代码复用性和可维护性,是简化复杂系统调用的典型解决方案。

qq_61875563的博客 545

JAVA设计模式:外观模式

外观模式 Facade模式也叫外观模式,Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。   一、结构与角色 Package1、Package2、Package3为3个类库或者3个子系统,外观Facade包含子系统的功能,外观Facade的doSomething方法再供用户调用。 Facade:为调用方法定义简单...

Derrick 139
上一篇: 使用Adapter(适配器)模式兼容原本不兼容
下一篇: 迭代器(Iterator)模式
NationSoftware
博客等级 码龄18年 2粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值