结构型
文章平均质量分 89
这类模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。
code_Floyed
这个作者很懒,什么都没留下…
展开
-
代理模式的学习
应用例子: 一个老师请假了,需要一个代课老师。代理模式 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。即通过代理对象访问具体目标对象。分类: 静态代理 动态代理(JDK代理、接口代理) Cglib代理(可以在内存动态创建,而不需要实现接口) 代理模式结构 1. 服务接口 (Service Interface) 声明了服务接口。 代理必须遵循该接口才能伪装成服务对象。 2. 服务(Service)原创 2021-07-08 12:35:01 · 120 阅读 · 0 评论 -
享元模式的学习
展示网站项目 给客户A做了一个产品展示网站,客户A的朋友感觉效果不错,但是需求不同。==》有人希望以博客的形式,或者微信公众号的形式发布 传统方案存在的问题: 因为需要的网站结构相似度高,并且都不属于高访问量的项目,若分成多个虚拟空间处理,则相当于一个相同网站的实例对象被创建了很多,造成服务器的资源浪费。 解决思路:整个到一个网站,共享相关的代码和数据。 享元模式 摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态,原创 2021-07-08 11:55:49 · 71 阅读 · 0 评论 -
外观模式的学习
家庭影院管理项目: 当你想看电影时,你需要 开爆米花机->开投影仪->开机顶盒选择电影->拿爆米花->调低灯光->播放->结束后,关闭各种设备。传统模式 通过main来创建各大对象,使用一系列方法。问题: 创建许多的对象,并调用相关方法,容易造成调用过程混乱,没有清晰的过程。 不利于在main中维护系统的操作解决思路:定义一个高层接口,给子系统一组接口提供一致的界面。例如:对智能AI说 我要看电影,于是机器开始运行。等电影结束了,便关原创 2021-07-07 15:00:18 · 147 阅读 · 0 评论 -
组合模式的学习
学校院系展示在一个页面展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。传统方案 根据组织大小分层次。 但该方案不好实现对学校、系的添加、删除、遍历等。解决方案:把学校、院、系都看作组织结构,他们不是继承关系,而是树形结构,可以更好地实现管理操作。=》组合模式组合模式 创建了对象组的树形结构,将对象组合成树状结构以表示 整体-部分的层次关系。 该模式使得用户对单个对象和组合对象的访问具有一致性。使客户能让一致的方式处理个别对象以及组合对象。组合模式结构1.组件 (原创 2021-07-07 13:57:06 · 159 阅读 · 0 评论 -
装饰者模式
咖啡订单项目: 咖啡种类:Espresso、ShortBlack、LongBlack、Decaf 调料:Mike、Soy、Chocolate 要求:在拓展新咖啡种类时,具有较好的扩展性、改动方便、维护方便 使用OO的方式计算不同种类的费用,可有单点,也可单点+调料组合方案1: Drink:抽象类,表示饮料 description:对咖啡的描述,不然咖啡的名字 cost():计算费用,由具体实现类实现。 问题: 该设计需要许多原创 2021-07-07 11:55:57 · 92 阅读 · 0 评论 -
桥接模式的学习
手机操作问题: 现在不同的手机会装载不同的系统来实现操作(开机、关机) eg: 手机 小米 -> MIUI OPPO->COLORS ONEPLUS ->COLORS/H2OS … 传统方案解决手机操作问题 存在问题: 1.拓展问题,容易类爆炸。即当我们需要添加新品牌,及其以下的系统时,则就要新建相对的类。 2.违反了单一职责原则,当我们添加一个手机品牌时,可能会有增加许多的系统。增加了原创 2021-07-06 15:14:34 · 90 阅读 · 0 评论 -
适配器模式
手机充电问题 想给手机充电,家用电的220V交流电则需要转换成适配司机的5V,则充电器充当了适配器。 适配器模式 适配器模式 会将某个类的接口转换成客户期望的另一个接口表示,主要目的是兼容性。 让原本因接口不匹配不能工作的两个类可以协同工作。别名为包装器 适配器模式结构 类适配器 这一实现使用了继承机制: 适配器同时继承两个对象的接口。 注:Java中可以继承一个类,实现另外一个接口。 类适配器不需要封装任何对象, 因为它同时继承了客户原创 2021-07-06 14:49:56 · 131 阅读 · 0 评论