软考
APP下载

设计模式中应优先使用的复用技术是

—继承与组合

设计模式是指在特定情境下,解决重复性问题所设计出的可复用的解决方案。而在实现这些解决方案的时候,复用技术是不可或缺的。然而,复用技术却并非一成不变,对于不同的情境,有不同的优先选择方案。在设计模式中,优先选择什么样的复用技术,是一个需要考虑多个角度的问题。

第一,考虑面向对象的基础——继承。继承是指子类继承自父类的属性和方法。在设计模式中,对于存在“is-a”的关系(即子类是父类的某种类型),应优先使用继承。例如,在工厂模式中,有具体工厂和抽象工厂。如果要新增一种具体工厂,可以从抽象工厂继承而来,从而实现代码的复用。

第二,考虑代码的灵活性——组合。组合是指不同类之间通过包含彼此来实现某种功能。在设计模式中,对于存在“has-a”的关系(即这个类有一个某种类型的属性),应考虑使用组合。例如,在装饰器模式中,需要给对象添加一些额外的功能,可以通过组合来实现。这样既保证了代码的灵活性,又实现了代码的复用。

第三,考虑代码的可维护性——抽象。抽象是指将一些共性的代码提取出来,通过继承或组合使用。在设计模式中,应该在继承和组合的基础上使用抽象,从而实现代码的可维护性。例如,在观察者模式中,可以定义一个抽象观察者类,实现公共的代码,在具体观察者中实现具体的代码。这样既能实现代码的复用,又能维护代码的可读性和可维护性。

在设计模式中,应优先使用继承与组合这两种复用技术。在使用复用技术的时候,需要从多个角度考虑如何实现代码的灵活性、可维护性和复用性。只有在多方面综合考虑的前提下,才能实现优秀的设计模式。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库