zoukankan      html  css  js  c++  java
  • java设计模式----真实世界的模式

    设计模式的定义:

      模式是在某情境下,针对某问题的某种解决方案

    反模式:

      告诉你如何采用一个不好的解决方案解决一个问题

    要点:

      1、让设计模式自然而然地出现在你的设计中,而不是为了使用而使用

      2、设计模式并非僵化的教条;你可以依据自己的需要采用或调整

      3、总数使用满足需要的最简单解决方案,不管它用不用模式

      4、学习设计模式的类目,可以帮你自己熟悉这些模式以及它们之间的关系

      5、模式的分类(或类目)是将模式分成不同的族群,如果这么做对你有帮助,就采用把

      6、你必须相当专注才能够成为一个模式的作家:这需要实践也需要耐心,同时还必须乐意做大量的精化工作

      7、请牢记:你所遇到大多数的模式都是现有模式的变体,而非新的模式

      8、模式能够为你带来的最大好处之一是:让你的团队拥有共享词汇

      9、任何社群都有自己的行话,模式社群也是如此。别让这些行话绊着,在读完这本书之后,你已经能够应用大部分的行话了

    装饰者:包装一个对象,以提供新的行为

    状态:封装了基于状态的行为,并使用委托在行为之间切换

    迭代器:在对象对的集合之中游走,而不是暴露集合的实现

    外观:简化一群类的接口

    策略:封装可以互换的行为,并使用委托来决定要使用哪一个

    代理:包装对象,以控制对此对象的访问

    工厂方法:由子类决定要创建的具体类是哪一个

    适配器:封装对象,并提供不同的接口

    观察者:让对象能够在状态改变时被通知

    模板方法:由子类决定如何实现一个算法中的步骤

    组合:客户用一致的方式处理对象集合和单个对象

    单件:确保有且只有一个对象被创建

    抽象工厂:允许客户创建对象的家族,而无需指定他们的具体类

    命令:封装请求成为对象

  • 相关阅读:
    HDU4366 Successor 线段树+预处理
    POJ2823 Sliding Window 单调队列
    HDU寻找最大值 递推求连续区间
    UVA846 Steps 二分查找
    HDU3415 Max Sum of MaxKsubsequence 单调队列
    HDU时间挑战 树状数组
    UVA10168 Summation of Four Primes 哥德巴赫猜想
    UESTC我要长高 DP优化
    HDUChess 递推
    HDU4362 Dragon Ball DP+优化
  • 原文地址:https://www.cnblogs.com/stanljj/p/7714471.html
Copyright © 2011-2022 走看看