设计模式
IDTC
一位热爱硬件的软件工程师~
展开
-
适配器模式
手机充电的电压为5V,而普通家用电的电压为220V,为了解决这种电压不兼容的问题,我们引入了电源适配器(俗称充电器)。在软件系统中,类与类,模块与模块之间也会出现类似不兼容的现象,这时我们需要引入适配器模式来解决这个问题。 与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,它相当于我们的手机充电器,而它所包装的对象称为适配者(Adaptee),即被适配的类,它相当...原创 2020-03-23 17:49:40 · 227 阅读 · 0 评论 -
建造者模式
建造者模式它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成与装配方式,只需要知道所需的建造者类即可。建造者模式关注如何一步一步地创建一个复杂对象,不同地具体建造者定义了不同地创建过程,且具体建造者之间相互独立,增加新的建造者非常方便,无须修改已有代码,系统具有较好地扩展性。 建造者模式的定义如下: 建造者模式(Buidler Pattern):将...原创 2020-03-22 10:13:47 · 257 阅读 · 0 评论 -
原型模式
在设计模式中存在一种模式,可以通过一个原型对象克隆出多个一模一样的对象,该模式称之为原型模式。 原型模式的定义如下: 原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。原型模式是一种对象创建型模式。 在使用原型模式时,需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。 原型模式的工作原理很简单:将一个原型...原创 2020-03-19 20:56:50 · 228 阅读 · 0 评论 -
抽象工厂模式
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是抽象工厂模式的基本思想。 首先我们先来学习一些产品等级结构和产品族这两个概念。 1.产品等级结构:产品等级结构即产品的继承结构,例如一...原创 2020-03-18 10:30:45 · 136 阅读 · 0 评论 -
工厂方法模式
简单工厂模式虽然简单,但是存在一个很严重的问题:当系统中需要引入新产品时,由于工厂类的静态工厂方法通过传入的参数的不同来创建不同的产品,这必定要修改工厂类的源代码,这就违背了开闭原则。此外,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类的职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度较高,严重影响了系统的灵活性和扩展性。 如何实现在增加新产品时不影响已有的代码?工厂方法模式为此...原创 2020-03-16 15:36:36 · 102 阅读 · 0 评论 -
简单工厂模式(静态工厂方法模式)
定义: 简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有相同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。 严格来讲,简单工厂模式并不属于23中设计模式,但是它在软件设计和...原创 2020-03-15 17:50:31 · 572 阅读 · 0 评论 -
单例模式
单例模式是常用的设计模式之一,其定义如下: 单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。 单例模式有3个要点: 1.某个类只能有一个实例; 2.它必须自行创建这个实例; 3.它必须自行向整个系统提供这个实例。 单例模式的UML类图如下: 单例...原创 2020-03-14 11:45:27 · 70 阅读 · 0 评论