![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件设计模式
经海码农
不积跬步无以至千里
展开
-
软件设计模式——命令模式
一、定义命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。二、作用将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行...原创 2019-11-17 21:55:55 · 305 阅读 · 0 评论 -
软件设计模式——责任链模式
一、定义责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。二、作用避免请求发送者与接收者耦合在一起,让多...原创 2019-11-17 21:47:38 · 391 阅读 · 0 评论 -
软件设计模式——享元模式
一、定义享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。二、作用运用共享技术有效地支持大量细粒度的对象。在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。需要解决...原创 2019-11-13 21:40:58 · 263 阅读 · 0 评论 -
软件设计模式——外观模式
一、定义外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。二、作用为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易...原创 2019-11-13 21:22:18 · 369 阅读 · 0 评论 -
软件设计模式——装饰器模式
一、定义装饰器模式是为已有的模式动态地添加额外的功能的一种模式。允许向一个现有的对象添加新的功能,但是不影响其结构。作为现有对象的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。二、设计类图三、作用一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。动态地给一个...原创 2019-11-13 21:04:21 · 245 阅读 · 0 评论 -
软件设计模式——原型模式
一、定义原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此...原创 2019-11-11 21:30:58 · 438 阅读 · 0 评论 -
软件设计模式——单例模式
一、定义单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类...原创 2019-11-10 20:17:47 · 182 阅读 · 0 评论 -
软件设计模式——抽象工厂模式
一、定义抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。二、解决的问题如果想创建其他类型的产品,比如除了可以生产鼠标、还可以生...原创 2019-11-10 19:32:20 · 346 阅读 · 0 评论 -
软件设计模式——工厂模式
一、定义工厂模式是为了解决简单工厂模式中,工厂判断方法的日渐复杂而衍生出来的模式。如果后面需要创建的“产品”越来越多,那么这个简单工厂类会包含越来越多的if-else判断类。这样维护起来会非常的麻烦。同样也违反了开闭原则。二、设计类图工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。生产哪种鼠标不再由参数决定,而是...原创 2019-11-10 17:57:38 · 209 阅读 · 0 评论 -
软件设计模式——适配器模式
一、设计类图二、意图将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。三、解决的问题主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。四、使用场景系统需要使用现有的类,而此类的接口不符合系统的需要。 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大...原创 2019-11-10 11:41:08 · 228 阅读 · 0 评论 -
软件设计模式——简单工厂模式
一、定义简单工厂模式,又称为静态方法模式,属于类创建型的模式,可以根据参数的不同返回不同的类的实例。二、设计类图三、适用环境(1)工厂类创建的对象比较小,这样不会造成工厂方法中业务的逻辑过于复杂。(2)客户端只是知道传入工厂类的参数、对于如何去创建对象并不关心。客户端不需要去关心创建的细节,只需要明确需要的参数,而由工厂内部负责具体的类的创建。四、优点&缺点...原创 2017-10-28 23:17:00 · 240 阅读 · 2 评论