设计模式概述(软件工程)

设计模式概述、

在软件工程的领域,最常见的设计模式有七种:工厂方法模式,适配器模式,装饰器模式。策略模式,模板模式,迭代器模式以及访问者模式。

其中,工厂方法模式是创造性地设计模式;适配器模式和装饰器模式是结构性的设计模式;而策略模式、模板模式、迭代器模式以及访问者模式都是行为性的设计模式。

各设计模式简要介绍:

工厂方法模式:在不确定具体类的情况下创造对象

适配器模式:允许有着不适配接口的类和其他类协同工作,具体方法是用一个已经存在的类的接口对有着不适配接口的类进行包装。

装饰器模式:对对象的方法进行动态的添加或重写(override)

策略模式:允许一个算法家族在运行时被选中

模板模式:将一个算法的骨架定义成抽象类,并允许它的子类来实现这个抽象类。

迭代器模式:在不暴露某个对象的内在表示的情况下获取这个对象的元素

访问者模式:通过将方法的优先级移动到同一个对象,来讲一个算法从对象的结构中分离出来。

方法具体的描述如下:工厂方法模式,又称虚拟构造器。它可以像普通的设计那样通过定义一个接口的来创建对象。但是与普通方法不同的是,它的子类可以选择实例化拿一个类。一句话概括,就是工厂类模式让一个类将自己的实例化环节推迟到它的子类。

当一个类无法预测它的对象的类时,当一个类想要它的子类自己定义它的类别时,以及当一个类将自己的某项任务委托给多功能的辅助子类,并且你需要确定你委托的客体到底是哪一个类时,你可能会用到工厂方法模式。

相比于通过构造器构建的对象,静态工厂方法可具有指定的更有意义的名称,并且不必在每次调用的时候都创建新的工厂对象,同时也可以返回原返回类型的任意子类型。但是工厂方法模式每增加一种产品就要增加一个新的工厂子类,这一点可能会成为潜在的劣势。

适配器模式:适配器模式激昂某个类或者接口转换为client期望的其他形式,可以解决类之间接口不兼容的问题,也可以通过增加一个接口,将已存在的子类封装起来,从而隐藏了具体子类。其目的就是实现在新的接口中复用老的组成部分的目的。

装饰器模式:在实际应用中,程序可能会有不同子类用来实现不同的特性,但是在需要不同的特性组合时不能够模块化地生成。举例说明,假设一个数据结构延展出的子类有3种,它们的三元组合应该有8种,在不使用装饰器模式的情况下,程序需要生成8个类,与三元组合数量相同。而在使用装饰器的情况下,程序只需要生成3个类,和子类数目相同。装饰器模式可以避免组合爆炸和大量的重复代码,并且可以为对象增加不同侧面的特性,对每一个特性构造子类,通过委派机制增加到对象上。

装饰器和继承的区别:装饰器在运行时编写特征,而继承方法在编译时编写;装饰器有多个合作的对象组成,而继承产生一个单独的、有明确类型的对象;装饰器可以混合多种不同的装饰,而继承之间没有可混合性。

有一个良好的设计模式,可以增强程序的可复用性,维持性,以及可开发性。其中维持性越好,则在解决已有的bug时,产生新的bug的可能性越低。可开发性越好,便可以更轻松地为程序添加功能。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值