快速了解软件设计模式
什么是设计模式?
所谓设计模式,就是在软件开发广泛实用的最佳时间,用于解决各个业务场景在软件设计的问题。
(针对于在开发中,是讲究以业务场景开发功能,那么针对于不同业务,对应采用不同需求不同的设计模式)
设计模式的三种分类
1.创建型模式
场景:
需要灵活创建对象,将对象创建与使用解耦等场景时采用创建型模式。使用场景包括:对象初始化过程复杂、对象需要其他对象控制、独立具体对象进行实例化等。
特点:
根据场景来看,创建型模式关注对象的创建和实例化的过程,提供灵活方式来创建对象,将创建和使用分离,提供高灵活性和维护性,那针对开发实现来说就是使用接口、抽象类、工厂方法这些机制来实现对象的创建。
优点:
系统与对象的创建方式解耦、封装对象的创建过程、提高灵活性和拓展性、提供特定类型的对象实例化机制。
缺点:
对象创建复杂性、增加系统复杂性
2.行为型模式
场景:
需要定义对象之间的交互和通讯方式,以更好代码组织和可维护性时可以采用该模式。例如需要定义对象的交互协议、状态机、实现对象责任链、监控对象、响应对象状态变化等。
特点:行为型模式更关注对象之间的通讯和交互,以及管理组织对象行为。通过这些模式定义对象之间的通讯协议与交互方式,让其在系统中实现协同工作,并完成复杂任务。通常通过定义对象之间的规则、状态、算法机制管理对象。
优点:
清晰对象交互方式以及通讯方式、系统易理解、维护、拓展
缺点:
增加系统复杂性,使得对象之间交互复杂化
3.结构型模式:
场景:
需要定义对象之间的关系,组织结构以及对结构进行抽象、解耦时采用结构性模式。例如需要系统中有复杂的对象关系需要管理、对对象组织和结构进行额外处理,针对接口适配不同实现。
特点:
结构性模式更加关注对象之间的组合和关联关系,由此通过这些关系构建更大的结构。此模式对于定义对象之间的接口与交互有更加的松耦合和灵活性,通过对象组合、聚合、继承、接口等机制定义对象之间的关系。
优点:
通过该模式特点,可以良好定义接口和关系,使得系统各个模块独立。提供代码组织查看性和可拓展性。并对系统结构实现抽象和解耦。
缺点:
增加系统复杂性、对象关系复杂化
我们发现各个设计模式都针对不同业务场景的实现有着优势和劣势,所以针对我们日常开发要结合具体业务场景、系统复杂度、开发周期从而具体选择最佳的方案,也可以通过选择多个模式来提高整个软件的质量。
#设计软件 #干货分享 #干货