![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
给你糖别哭
在路上!
展开
-
每天一个设计模式(一)——简单工厂模式
创建型模式中的工厂系列,有:简单工厂模式、工厂方法模式、抽象工厂模式。 什么用 降低对象之间的耦合度 扩展性比较好 简单工厂模式最大的优点在于实现对象的创建和对象的使用分离,将对象的创建交给专门的工厂类负责,但是其最大的缺点在于工厂类不够灵活,增加新的具体产品需要修改工厂类的判断逻辑代码,而且产品较多时,工厂方法代码将会非常复杂。 简单工厂模式适用情况包括:工厂类负责创建的对象比较少;客户端只知...原创 2019-05-13 23:36:57 · 252 阅读 · 0 评论 -
每天一个设计模式(二)——工厂方法模式
创建型模式中的工厂系列,有:简单工厂模式、工厂方法模式、抽象工厂模式。 什么用 工厂方法模式在简单工厂模式上做进一步抽象,实现后的功能是这样的:当你需要什么,你就创建生产这个产品的工厂,并用它获取你需要的对象,不用关注创建细节。 场景变化:画图系统不再用同一个工厂来统一负责所有图形的创建,而是将具体图形的创建过程交给专门的工厂子类去完成。我们先定义一个抽象的图形工厂类,再定义具体的工厂类来生成图形...原创 2019-05-14 23:32:52 · 119 阅读 · 0 评论 -
每天一个设计模式——写在前面
读史使人明智,读诗使人聪明,演算使人精密,哲理使人深刻,伦理学使人有修养,逻辑修辞使人长于思辩。——《培根随笔》 为什么学 关于过度设计 ...原创 2019-05-10 23:10:44 · 202 阅读 · 0 评论 -
每天一个设计模式(三)——抽象工厂模式
创建型模式中的工厂系列,有:简单工厂模式、工厂方法模式、抽象工厂模式。 什么用 当你想拥有多个工厂,并且一个工厂可以生产多个产品时,你可以使用抽象工厂模式。 产品种类:不同的抽象产品即为不同的产品种类。 产品族:同一个工厂生产的,不同产品种类的一组产品。 场景改变:画图系统想要画出不同风格(规则、手工)的图形,并且可以随时将不同的图形统一替换成其他风格。我们先对每一个图形都定义一个抽象图形类,并定...原创 2019-05-16 00:33:46 · 129 阅读 · 0 评论 -
每天一个设计模式(四)——建造者模式
什么用 软件开发中,会碰到这样的情况:一个类的内部数据过于复杂,拥有很多成员属性,这些成员属性中有的是引用类型的成员对象;当创建该类的实例时,有些属性的赋值还必须按照某种顺序,一个属性没有赋值之前,另一个属性可能无法赋值等。当我们遇到这种情况真的是一种痛苦,我们只想用它,但是我们却要花费时间去了解它的内部结构和怎么组装它。这个时候,建造者模式就可以帮我们减轻痛苦了。 假设场景:装机系统可以帮用户将...原创 2019-05-16 22:12:58 · 150 阅读 · 0 评论 -
每天一个设计模式(六)——代理模式
什么用 顾名思义,代理模式就是本该由客户直接调用某一目标对象,但却由于客户不想或不能或者由于其他某些原因,没有直接调用该对象,而是通过中间对象去调用目标对象。该中间对象即为代理,它不仅起到中介的作用,还能隐去客户不能看见的内容,或者添加客户需要的额外服务。 RMI调用就是一种代理模式。远程服务器中的服务在本地有一个stub代理,该代理封装了访问远程服务的方法,客户可通过该代理来调用远程服务。 Sp...原创 2019-05-25 22:56:27 · 104 阅读 · 0 评论 -
每天一个设计模式(五)——单例模式
什么用 实际上我们经常见到这种设计模式。当你要打印东西时,你有很多个打印任务,但正在工作的却只有一个;当你从数据库获取数据时,看上去你会建立很多次连接,但其实你的连接都是从唯一的数据库连接池中获取的;还有Spring中的bean一般默认是单例的。 对于这种要么没有实例,有就只有一个实例的类,我们可以让类自己保存它的唯一实例,保证没有其他实例被创建,并且向外部提供一个访问该实例的方法。 模式结构 ...原创 2019-05-17 23:54:18 · 195 阅读 · 0 评论