七大重要软件设计模式
【倾地开发】
在软件设计中,通常把大型问题分解成一组子问题,再对每个子问题采用适当的设计范式(paradigm)。软件设计范式是软件设计经验的总结,多数已被广泛接受,但它不是标准,只能视为软件工程最佳实践的一种形式。
软件设计模式就是一种范式,可视为软件工程的一种最佳实践(显然是与结构有关的最佳实践)。目前常见的面向对象设计模式有23种,它们被分为三大类,分别称为对象创建型模式、对象结构型模式和对象行为型模式。从中挑选7种模式加以讨论,它们包括工厂模式、抽象工厂模式、适配器模式、装饰器模式、代理模式、迭代器模式以及观察者模式。
01工厂模式
simple factory
工厂模式也称简单工厂(Simple Factory)模式,可根据用户提供的参数返回指定父类(接口)的一个子类(具体类)实例,如同一个工厂生产一个产品系列。它提供了一种将对象的使用过程与对象的具体创建过程隔离开来的解决方案,对于第三方开发的中间件或远程服务系统至关重要。
02抽象工厂模式
abstract factory
抽象工厂(Abstract Factory)模式是简单工厂模式的延伸,可形象地描述为“工厂的工厂”。一个抽象工厂类可创建多个具体工厂对象,用于产生多个抽象类(接口)的子类(具体类)实例。这些实例按二维分布,由一个具体工厂生产的对象所实例化的类继承同一个父类。抽象工厂提供的同样是将对象的使用过程与对象的具体创建过程隔离开来的解决方案,它进一步引入了创建过程的多样化,允许使用者根据需要启动不同的创建过程。
03适配器模式
adapter1
adapter2
适配器(Adapter)模式采用包装层改变已有类/对象的接口,使得原本由于接口不兼容而不能一起工作的类或对象可以一起工作。适配器模式的应用场景主要是客户程序希望通过新的接口复用某个现有的类或对象(不想或不能改变被复用类/对象的接口)。其解决方案是在原有的类/对象之上加一个包装层,采用类继承或者对象组合的方式提供所需要的接口。前者一般称为类适配器,后者则称为对象适配器。
04装饰器模式
decorator
装饰器(Decorator)模式采用包装层动态地扩展一些额外的功能。其主要优点是在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。采用装饰器模式的解决方案在某些场景中优于创建一个子类家族的方案,因为后者有可能为了支持所有的功能组合而使得子类数目呈指数增长。
05代理模式
proxy
代理多用于C/S架构的服务器端,代理(Proxy)模式也提供一种采用包装层的解决方案,但它不修改对象的接口,而只是为笨重的服务对象提供一个轻量级的前端。由于笨重的服务对象在其实例化过程中需要消耗大量的计算资源,实践中往往希望延长它们的生命周期,由此提高系统的性能。方法之一是把它们池化,当一个客户请求到来时,服务器端只需实例化一个代理,这个代理负责接受请求,把它转交给一个空闲的服务对象来完成,并把该对象返回的结果回传给客户端。服务完成之后,代理对象(而不是服务对象)将被析构以回收内存资源。
06迭代器模式
iterator
迭代器(Iterator)模式的设计目的是提供一个标准化的抽象迭代器(或其接口),以便为不同聚集(aggregation)/汇集(collection)提供通用的遍历操作方法。迭代器模式的优势主要有两个:①客户程序可以通过同样的方法遍历不同的汇集;②客户程序无需了解汇集的内部结构。不过,为了获得以上的“好处”,每一个汇集都必须实现一个抽象的迭代器创建方法。
07观察者模式
observer
观察者(Observer)模式的设计目的是建立一对多的依赖关系,使得一个对象的某种状态变化可以触发多个对象的相应行为。观察者模式中包括一个主体和任意数目的观察者,当主体发生改变时,所有的观察者都将会接到更新的通知。这种交互模式的更一般形式是发布/订阅(publish/subscribe)模型,
倾地开发
倾地开发依托于强大案例素材库与国际顶级咨询模型应用,集成PC端、移动端、系统、小程序、APP五站合一的一体化搭建工程,高端UI设计,超高性价比品质保证,10 年软件开发经验,300 人精英团队百万客户信赖选择,公司立足深圳与华为云、腾讯云深度合作,致力于为政府、企业、个人提供在WEB、移动、系统、应用、定制系统集成、特别在APP开发、云计算、物联 等软件应用方面拥有独特的个性化解决方案。
关注我们,一起寻求合作吧
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!