外观模式

C# 设计模式-外观模式

☆樱花仙子☆ 提交于 2019-11-29 06:05:27
外观模式就是将一个互相耦合严重的系统分成2块。 一块仍旧是耦合严重,但是会暴露出一个统一的接口。 而另一块只与暴露的统一接口联系,降低了耦合。 将原本依赖于一个复杂的系统编程依赖于一个统一的接口。 来源: https://blog.csdn.net/qq_34759481/article/details/100535617

设计模式之适配模式、外观模式

戏子无情 提交于 2019-11-29 05:52:40
一、适配模式 1、什么是适配器 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 2、适配器分类 适配器分为,类适配器、对象适配、接口适配方式 类适配器方式采用继承方式,对象适配方式使用构造函数传递 3、适配器案例 我们就拿日本电饭煲的例子进行说明,日本电饭煲电源接口标准是110V电压,而中国标准电压接口是220V,所以要想在中国用日本电饭煲,需要一个电源转换器。 1)定义日本和中国两种接口及其实现 我们先定义日本220V电源接口和实现。 110V电源接口 //日本110V 电源接口 public interface JP110VInterface { public void connect(); } 110V电源接口实现 public class JP110VInterfaceImpl implements JP110VInterface { @Override public void connect() { System.out.println("日本110V,接通电源,开始工作.."); } } 我们再定义中国220V电源接口和实现。 public interface

外观设计模式

烈酒焚心 提交于 2019-11-29 04:58:40
外观模式(Facade模式) 当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标。 外观( Facade )模式的定义 : 是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 外观(Facade)模式是“迪米特法则”的典型应用 外观模式主要优点 : 降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。 对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。 降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因为编译一个子系统不会影响其他的子系统,也不会影响外观对象。 外观( Facade )模式的主要缺点如下 : 不能很好地限制客户使用子系统类。 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。 外观( Facade )模式包含以下主要角色 :    外观(Facade)角色:为多个子系统对外提供一个共同的接口。 子系统(Sub

外观模式

老子叫甜甜 提交于 2019-11-29 03:49:44
第一、外观模式的定义 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了 一个统一的访问接口, 这个接口使得子系统更容易被访问或者使用。 第二、外观模式应用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。 1).门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。 2).子系统角色:实现了子系统的功能。它对客户角色和Facade时未知的。它内部可以有系统内的相互交互,也可以由供外界调用的接口。 3).客户角色:通过调用Facede来完成要实现的功能。 第三、代码实现 3.1处于重构的代码 @Slf4j public class PayCallbackService { // 用户下单成功后,有那些操作? // 1.增加支付回调接口日志 // 2.修改订单数据库状态为已经成功 // 3.调用积分服务接口 // 4.调用消息服务平台服务接口 public boolean callback(Map<String, String> verifySignature) { // 1.第一步打印日志信息 String orderId = verifySignature.get(

设计模式简介及常用应用场景

有些话、适合烂在心里 提交于 2019-11-28 12:48:42
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。 常用应用场景: 工厂模式 :IOC就是典型的工厂模式 代理模式 :AOP就是代理实现的 Facade模式 :shiro框架的核心 单例模式 Spring默认就是单例 不变模式 string 八大基本数据类型都是单例 Future 模式 异步调用。即请求时只拿到一个契约,约定以后可以获取这个东西 来源: https://www.cnblogs.com/duguangming/p/11407721.html

GOF23设计模式-结构型(7种)

醉酒当歌 提交于 2019-11-27 10:51:28
文章目录 二、结构型模式 1. 外观模式(门面模式) 定义 适用场景 优点 缺点 源码 外观模式和中介者模式 外观模式和单例模式 外观模式和抽象工厂模式 2. 装饰者模式 定义 适用场景 优点 缺点 源码 装饰者模式和代理模式 装饰者和适配器模式 3. 适配器模式 定义 适用场景 优点 缺点 扩展 源码 适配器模式和外观模式 4. 享元模式 定义 适用场景 优点 缺点 内部状态和外部状态 源码 享元模式和代理模式 享元模式和单例模式 5. 组合模式 定义 适用场景 优点 缺点 源码 组合模式和访问者模式 6. 桥接模式 定义 适用场景 优点 缺点 源码 桥接和组合模式 桥接模式和适配器模式 7. 代理模式 定义 适用场景 优点 缺点 静态代理和动态代理 源码 源码链接:https://github.com/ouyangxizhu/design_pattern.git 二、结构型模式 1. 外观模式(门面模式) com.ouyangxizhu.design.pattern.structural.facade 定义 提供了一个结构来访问子系统中的一群接口。 这个外观结构 封装 了子系统之间的调用逻辑,调用顺序。比如购物,用户只关注我能不能买成功(下单功能),至于怎么减库存,怎么生成订单,怎么物流配送都不需要知道。 适用场景 当子系统越来越复杂,增加外观模式提供简单接口调用。

设计模式之GOF23外观模式

☆樱花仙子☆ 提交于 2019-11-27 07:35:38
外观模式 迪米特原则: 一个软件实体应当尽可能少的与其他实体发生相互作用 外观模式核心: 为子系统提供统一的入口, 封装 子系统的复杂性,便于客户端调用 相当于找了个代理帮你做了所有事而你只需要和代理打交道 来源: https://www.cnblogs.com/code-fun/p/11351289.html

外观模式

依然范特西╮ 提交于 2019-11-27 02:39:20
外观模式:为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分隔开,使得客户类只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。 例子:业务类A /** * anji-allways.com Inc. * Copyright (c) 2016-2017 All Rights Reserved. */ package boot.demo.facade; /** * <pre> * OperationA * </pre> * * @author sxl * @version $Id: OperationA.java, v 0.1 2019年8月12日 上午10:37:18 sxl Exp $ */ public class OperationA { public void operA () { System.out.println("这是A操作!!!"); } } 业务类B /** * anji-allways.com Inc. * Copyright (c) 2016-2017 All Rights Reserved. */ package boot.demo.facade; /** * <pre> *

设计模式之(十三)外观模式(Facade)

北城余情 提交于 2019-11-26 21:09:47
外观模式思想   历史上牛人中成功逆袭,实现人生辉煌的人很多,这群人最耀眼的无疑是明太祖朱元璋,从一个放牛讨饭的最低层小屌丝逆袭到人类权力顶峰开国皇帝,确实是我等膜拜的对象。在发不断的发展过程中,其实就在利用外观模式的这个思想,接下来我们就娓娓道来。   朱元璋同学为了吃饭问题造反,开始是小兵一枚,但是造反很用心,很快被提升到了九人长。这个时候他开始展示管理智慧,由于就是九个人,所以朱元璋对这九个人吃多少拉多少可谓了如指掌。   朱同学造反砍人很厉害,很快就成了将军。下手有了几千人,他不可能对每个人就亲自管理 。于是就把这些人分别分给了他的亲密小伙伴徐达、常遇春、冯胜、李善长等人。让下面的人的归这几个人管理。下面小兵有了事情就分别找自己的头,不能再去找老大朱元璋了。而这几个头头在把事情总结下来,写个简章让朱元璋老大了解。   要给敌人干仗了。就找来李善长,让其好好准备粮草、马匹;’找来徐达让其正面进攻;找来常遇春,让其偷袭;找来冯胜,让其接应。具体他们的任务怎么完成,朱老大不太关心,你把我给你的任务好好完成就好了。想想如果这时候要是把士兵一个一个找来分配,只怕任务没有分配完,就被对方给消灭赶紧了。   好了介绍到这里,外观模式的例子就很好的体现出来了。就是把相近的目标的类封装起来,客户想要这些功能了不用去一个一个了解调用。直接调用封装接口就好了。具体封装的里面怎么工作