美文网首页
设计模式入门一

设计模式入门一

作者: 大树8026 | 来源:发表于2018-09-01 11:21 被阅读0次

最近看了《HEAD FIRST设计模式》,文中问答、实例较于看干涩的定义对理解设计模式有更好的版主。此类目文章,略做一些相关笔记和感想,也望大佬指教。废话不多,就此开始。
一、设计模式相关概念
1、初步定义:实在某情景下,针对某问题的某解决方案。
如果发现自己处于某个情景下,面对着所达到的目标,被一群约束影响着问题,然而,能够应用某个设计克服这些约束并达到该目标。
2、 对于这个定义的思考:
1)、定义分成三个部分:问题、情境、解决方案。是不是满足这三个部分就是设计模式呢?
这个定义很多程度上是我们第一次想到的设计模式,可是,有没有想过,很多情景下,满足了这三个部分,并不能称为设计模式。
拿书中例子来说:
问题:“如何准时上班?”
情境:“将钥匙留在车里了。”
解决方案:“打破车窗,进入车中,开车上班”
这个例子并不能说是一个设计模式,首先不会三番两次的忘记钥匙在车中,另外,一而再的把车窗打破,也不是一个可复用的解决方案。
一个完整的设计模式的类目有几分部分组成:名称、类目、意图、动机、应用性、适用性、结构、参与者、协作、结果(好坏结果)、代码示例、已知应用、相关模式。
2)、是否一定要严格遵照某个模式的定义
模式不是法律或准则,模式只是指导方针,你可以根据自己的需求,改变模式,来符合自己的需要,当然在改变模式的时候,最好在文档中注明它与经典设计模式的异同点,这样,项目交接时候,其他开发人员可以很快理解你的代码了。

二、设计模式分类
创建型:Singleton、Abstract Factory、Factory Method、Builder、Prototype
行为型:Template Method、Iterator、Command、Observer、State、Strategy、Visitor、Mediator、Memento、Interpreter、Chain of Responsibility
结构型:Proxy、Decorator、Composite、Facade、Adapter、Flyweight、Bridge

三、设计模式应用
书中极力推崇不要生搬硬套设计模式,在实际项目中,代码尽量保持简单,书中调侃一些设计模式初学者会为一个hello world级别的程序找设计模式,中级开发人员,会想把设计模式更多的应用在程序中,这些都不是正确的应用。
谨记下面三句话:
1、为实际应用的扩展而使用模式,不要只为了假想而使用模式。
2、简单才是王道。如果不用设计模式就能设计出简单高复用的方案,just do it。
3、模式是工具而不是规则,需要被适当地调用以符合自己的需求。

相关文章

  • 1.设计模式入门-策略模式

    《HEAD FIRST 设计模式》在第一章设计模式入门中介绍了策略模式(Strategy Pattern)。 定义...

  • 设计模式

    设计模式入门 计算机行业老话:设计即生活-- 由 ..... 谁设计,即是由 .....谁导演 使用设计模式最好的...

  • 单例模式(详解,面试问题)

    单例模式(从放弃到入门) @(设计模式) [TOC] 类图 简介 单例模式,可以说是设计模式中最简单的模式之一了,...

  • 【设计模式】设计模式入门

    设计原则: 多用组合,少用继承。使用组合建立系统具有很大弹性,不仅可将算法族封装成类,更可以“在运行时动态改变行为...

  • 设计模式入门一

    最近看了《HEAD FIRST设计模式》,文中问答、实例较于看干涩的定义对理解设计模式有更好的版主。此类目文章,略...

  • 快速理解设计模式之创建型模式

    要想更全面理解设计模式,建议先查看Spring的设计模式快速入门干货,前半部分是设计模式的分类和综述,与Sprin...

  • Java-设计模式-策略模式

    设计模式入门 设计模式是人们在面对同类型软件工程设计问题所总结出来的一些有用的经验。模式不是代码,而是某类问题的通...

  • 设计模式入门

    作者已经搬迁去隔壁网站,也欢迎大家关注我们的写作团队:天星技术团队。 前言 不知道是否有许多萌新跟我一样,在看ja...

  • 设计模式入门

    鸭子超类,添加行为的错误,在超类上直接加fly的实现,木头鸭子也会飞 当设计维护时,为了复用目的而使用继承,结局并...

  • 设计模式入门

    设计模式入门   这是《Head First设计模式(中文版)》第一章的读书笔记。这本书是 2007 年出版的,书...

网友评论

      本文标题:设计模式入门一

      本文链接:https://www.haomeiwen.com/subject/pkiywftx.html