Java设计模式总览(一)

知识点的梳理:

  • 让设计模式自然而然地出现在你的设计中,而不是为了使用而使用;
  • 设计模式并非僵化的教条:可以根据自己的需要采用或调整;
  • 总是使用满足需要的最简单解决方案,不管它用不用模式;

      

  • 什么是模式?
    • 模式:在某情境(Context)下,针对某问题的某种解决方案;
      • 情境:就是应用某个模式的情况。这应该是不断出现的情况。(例如:你拥有一个对象的集合);
      • 问题:就是你想在某情境下达到的目标,但也可以是某情境下的约束。(你需要注意走访每个对象,而且不需要理会该集合的实现);
      • 解决方案:就是你所追求的:一个通用的设计,用来解决约束,达到目标。(将迭代封装进分离的类中);
    • 综上:
      • 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
      • 设计模式不是一种方法和技术,而是一种思想
      • 设计模式和具体的语言无关,学习设计模式就是要建立面向对象的思想,尽可能的面向接口编程,低耦合,高内聚,使设计的程序可复用
      • 学习设计模式能够促进对面向对象思想的理解,反之亦然。它们相辅相成
    • 设计模式的分类
      • 创建型模式 对象的创建
      • 结构型模式 对象的组成(结构)
      • 行为型模式 对象的行为
    • 用模式思考
      • 保持简单:设计的时候,尽可能地用最简单的方法解决问题;而不是"如何在这个问题中应用模式";
      • 设计模式非万灵丹:模式是解决一再发生的问题的通用方案。但是使用模式,需要考虑到模式对你的设计中其他部分所造成的后果;
      • 知道何时需要模式:如果在设计时,确定在设计中可以利用某个模式解决某个问题,那么就使用这个模式。但如果有更加简单的实现方案,就应该先考虑这个方案;
        • 在有更简单的解决方案时,仍要使用设计模式。这种情况就是:预期系统在未来会发生改变。
      • 重构的时间就是模式的时间:重构就是通过改变你的代码来改进它的组织方式的过程。目标是要改善其结构,而不是其行为。
      • 何时删除模式?当出现一个较简单的解决方案比使用模式更恰当的时候;

你可能感兴趣的:(javaSE,基础,Head,First设计模式)