设计模式是在软件开发过程中遇到的一般问题的解决方案,是解决特定问题的最佳实践,是软件开发人员对代码设计经验的总结。
编程过程中使用设计模式,可以提高代码的重用性,让代码更可靠,同时让其他开发人员更容易理解程序,
常见的设计模式一共有23中,可以分为3大类,它们分别是创建型模式、结构型模式及行为型模式。
创建型模式提供了一种在创建对象的同时隐藏对象创建逻辑的方式,而不是直接同new运算符直接创建对象。
创建型模式包含两个主要的设计思想,他们分别是“将系统使用的具体类封装起来”和“隐藏这些具体类的实例的创建和组合方式”。
创建型模式又可细分为对象创建模式和类创建模式,具体来说对象创建模式是指把对象创建的一部分推迟到另一个对象中,而类创建模式它将对象的创建推迟到子类中。
创建型模式通过某种方式从代码中移除了需要实例化的具体类的引用,使程序员在不修改现有代码的情况下改变程序的行为,增加了程序设计灵活性和代码的复用性;解耦对象的创建过程和使用场景,使系统的各个部分相互独立,提高了软件的可靠性和可维护性。
常见创建型模式主要包含以下5种设计模式:
程序开发过程中遇到以下情况可以优先考虑使用创建型设计模式,他们分别是
结构型模式关注的是类和对象之间的组合。目的是为了形成更大、更复杂、更灵活的结构,从而满足程序设计中对复杂结构的需求。
结构型模式同样也分为类结构型模式和对象结构型模式,类结构模式采用继承机制来组织类和接口,对象结构型模式采用组合或聚合方式组织对象。
使用创建型模式类似于搭积木,通过不同类和对象的组合,形成更为强大结构,已达到简化系统整体复杂度的目的,它使得系统更容易扩展,提高代码的复用率;它允许不兼容接口之间协同工作,从而降低了组件之间的耦合度;通过将抽象和实现分离,使系统不同的组件相互独立,提高了系统整体的扩展性和维护性。
常见的结构型模式主要包含以下8种设计模式:
程序设计过程中遇到以下情况可以考虑使用结构型模式 ,他们分别是:
行为型模式通常用来描述多个类或对象怎么样通过相互协作共同完成单个对象无法完成的流程控制任务,它侧重于对象之间的通信、职责分配和复杂的流程控制。
行为型模式同样可分为类行为型模式和对象行为型模式,类行为型模式通过继承方式来分配不同类之间的行为。对象行为型模式通过组合或聚合方式来分配对象之间的行为。由于组合或聚合关系比继承关系耦合度更低,满足“合成复用原则”,因此相比类行为型模式,对象行为型模式具有更大的灵活性。
行为型模式通过定义对象之间的交互方式,通过封装系统中的行为变化,可以使程序员在不改变现有代码的情况下很方便的扩展或改变系统的行为,提高了系统的灵活性;另外通过减少类之间的直接依赖来降低系统组件之间的耦合度,实现组件之间相互独立,同时提高系统整体的可靠性和可维护性。
常见的行为型模式包含以下几种:
程序设计过程中遇到以下情况可以考虑使用行为型模式:
1.现在市面上比较流行的框架如Spirng, SpringMVC包括Java JDK 的代码中大量使用了设计模式,通过学习设计模式我们可以很容易的看懂源代码。
2.学习设计模式有助于编写自己理想中的代码,可以帮助公司设计出更健壮和更容易维护的系统。
3.可以促进团队写作,设计模式为团队成员之间提供了共同的语言,当团队中大部分都是用设计模式时,讨论问题,提出解决方案和编写文档都会变的更加容易。