![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Samven_7
当你发现自己的才华撑不起野心时,就请安静下来学习吧。
展开
-
设计模式(七):外观模式
文章目录一、『外观模式』定义二、应用2.1 结构2.1.1 使用外观模式前的结构2.1.2 使用外观模式后的结构2.2 优缺点参考一、『外观模式』定义提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。二、应用2.1 结构外观模式比较简单,通过下面的结构变化就清楚了。2.1.1 使用外观模式前的结构此时客户直接访问子系统中的多个模块,客户和子系统之间的联系紧密,耦合性太高。2.1.2 使用外观模式后的结构其中外观Facade是外观角色,原创 2020-07-27 12:34:25 · 119 阅读 · 0 评论 -
设计模式(六):适配器模式
文章目录一、『适配器模式』定义二、使用2.1 “对象”适配器2.1.1 类图说明2.1.2 场景2.2 “类”适配器2.2.1 类图说明2.3 两者对比参考一、『适配器模式』定义将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。生活中常见场景:如果一个两脚插头想要插在三脚插座上,需要一个【适配器】充当中间的转换。这里两脚插头称作【目标接口】,三脚插座称作【被适配者】。客户使用适配器的过程如下:1)客户通过目标接口调用适配器的方法对适配器发出请求。2)适配器原创 2020-07-22 13:03:30 · 350 阅读 · 0 评论 -
设计模式(五):单件模式(单例模式)
文章目录一、『单件模式』定义二、使用2.1 饿汉式2.2 懒汉式2.3 小细节三、单件模式的多线程安全问题3.1 懒汉式分析一3.2 懒汉式分析二3.3 懒汉式分析三参考一、『单件模式』定义确保一个类只有一个实例,并提供一个全局访问点。单件模式即单例模式。使用场景很多,比如多个程序都要使用一个配置文件中的数据,而且要实现数据共享和交换。必须要将多个数据封装到一个对象中。而且多个程序操作的是同一个对象。也就是说必须保证这个配置文件对象的唯一性。有两种方式:饿汉式和懒汉式。二、使用2.1原创 2020-07-18 10:26:48 · 944 阅读 · 0 评论 -
设计模式(四):简单工厂&工厂方法模式&抽象工厂模式
文章目录前言一、简单工厂1.1 介绍1.2 使用1.3 优缺点二、『工厂方法』模式2.1 定义2.2 使用2.3 优缺点三、『抽象工厂』模式3.1 定义3.2 使用3.3 优缺点四、三种方式的关系4.1 相同点4.2 不同点参考前言为了解耦代码,我们会把创建对象的代码从具体类中抽出来单独处理。什么是工厂?工厂就是一个专门帮我们创建对象的类。工厂的使用主要有三种方式:简单工厂、工厂方法模式以及抽象工厂模式。一、简单工厂1.1 介绍简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。但是使用原创 2020-07-17 11:21:36 · 194 阅读 · 0 评论 -
设计模式(三):装饰者模式
文章目录一、『装饰者模式』定义二、场景2.1 步骤一2.2 步骤二2.3 步骤三三、总结参考一、『装饰者模式』定义动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。二、场景下面还是通过具体场景来一步步说明。场景:在咖啡店点咖啡时,不同人点的咖啡加的调料很可能是不同的,然后用类去描述这些咖啡。2.1 步骤一如果要描述每个人点的咖啡(调料不同),都需要一个类去描述。这就导致类的数量非常多,因为调料的组合非常多。2.2 步骤二对于上面的问题,可以想到使用实例变原创 2020-07-12 11:01:50 · 167 阅读 · 0 评论 -
设计模式(二):观察者模式
文章目录一、『观察者模式』定义二、场景2.1 自定义观察者模式2.2 Java内置观察者模式2.2.1 内置观察者模式的源代码2.2.2 使用内置观察者模式三、总结参考一、『观察者模式』定义定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。可以用【出版者+订阅者=观察者模式】的方式来类比。如果你了解报纸的订阅是怎么回事,其实就知道观察者模式是怎么回事,只是名称不太一样:出版者改称为【主题】(Subject),订阅者改称为【观察者】(Observe原创 2020-06-27 20:58:15 · 219 阅读 · 0 评论 -
设计模式(一):策略模式
文章目录一、『策略模式』定义二、场景2.1 步骤一2.2 步骤二2.3 步骤三一、『策略模式』定义定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。什么是算法族?可以把每套行为想象成一个算法族,即某个行为接口及它的所有实现类称为一个算法族。二、场景直接看定义是一脸懵,下面通过具体场景来一步步说明。场景:描述不同品种的鸭子,如枫叶鸭、力加鸭、橡皮鸭、诱饵鸭等。2.1 步骤一对于不同品种的鸭子,我们需要用不同的类来描述。这时我们可以用标准的面向对象原创 2020-06-26 23:38:26 · 290 阅读 · 0 评论