代码之家  ›  专栏  ›  技术社区  ›  Chirantan

Ruby真的能有设计模式解决的设计问题吗?

  •  3
  • Chirantan  · 技术社区  · 16 年前

    我最近开始研究设计模式。一般来说,我认为设计问题 设计模式的求解一般不会出现在Ruby中。大多数设计问题都是因为数据类型(没有动态类型和数组可以同时保存属于同一类的对象等等)。作为Ruby和RubyonRails开发人员,我意识到缺少接口、抽象类、引用、指针等概念,以及模块、动态类型、数组等概念的存在,以及 埃瓦 确实让开发人员的生活更轻松。我也经历过 the book by Russ Olsen . 然而,我认为这本书试图模拟设计模式而不是实际实现它们,原因是,设计问题一般不会出现在Ruby中。是不是,Ruby编程语言已经随着时间的推移而发展,并且在内部处理设计问题,使得开发人员更加关注业务逻辑?

    我想知道其他Ruby开发人员对此的看法。谢谢。

    5 回复  |  直到 16 年前
        1
  •  3
  •   Joe Soul-bringer    16 年前

    In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. . 当然,通常出现的问题因语言和系统而异。Ruby确实可以解决其他语言中出现的一些问题,但它自己也会有一些常见的问题。

        2
  •  2
  •   Sean McSomething    16 年前

    考虑到 MVC ActiveRecord RubyonRails的核心,你选了一个不好的例子来证明 design patterns are missing language features .

        3
  •  1
  •   Sebastian Dietz    16 年前

    我认为你误解了设计模式。这不是真的

    “大多数设计问题是因为 数据类型的。”

    相反,设计模式通常解决面向对象设计的结构问题。例如,在Ruby中,您可能会遇到这样的问题:必须由同一代码处理不同类的对象。当它们有不同的接口(这意味着不同的方法集)时,您可能需要适配器模式来解决这种不兼容性。同样,您可能希望实现不同的行为集,并将使用策略模式来实现这一点。

    一些模式(比如空对象)可能不相关,因为它们直接集成在语言中,并且出于习惯而使用,而不将它们视为模式。

    一般来说,设计模式适用于Ruby以及其他面向对象的语言。

        4
  •  1
  •   Robert Gould    16 年前

    Ruby是一种相对现代的语言,虽然不像过去十年那样现代。因此,许多常见的编程模式被设计成语言本身。

    在不同的地方,有人声称设计模式的使用,特别是像visitorpattern这样的复杂模式,实际上是所用语言不够强大的指示器。

    Link to Wiki about this topic(the Wiki)

        5
  •  1
  •   Paul    16 年前

    设计模式只是一组关于如何解决一些常见的特定问题的“想法”。其中一些是有用的…其中一些是琐碎的,甚至是适得其反的(查找反模式:)一般来说,如果需要遵循与大多数“设计模式”中所述相当程度的预定义工作流,则意味着以下一种或两种情况:

    1. 使用的语言存在缺陷,因此解决常见问题很困难,需要遵循严格的预先定义的思维方式(设计模式或反模式),以避免过多的错误和/或根本无法解决问题。由于选择了一种表达能力差的语言而使用设计反/模式,通常会导致胡说八道。

    2. 遵循设计模式或反模式的程序员缺乏理解、分析和/或解决问题的技能、知识、创造力或简单的智商,因此他/她选择遵循模式或反模式。由于知识不足而遵循反/模式,而不是在尝试解决方案之前获得知识,通常会导致胡说八道。

    Ruby语言非常具有表现力,因此解决常见任务,尤其是“设计模式”中概述的任务,通常不需要明确使用或遵循严格的、预定义的工作流aka。设计模式。

    推荐文章