编程中的设计模式是什么 - 简单,一句话解释?

时间:2014-07-02 12:36:13

标签: design-patterns

我的同事今天问了我这个问题,如果不使用例子我就不能给他简短的答案......

那么让我问你们这个问题"什么是设计模式"并尝试提供最容易理解的简短答案

3 个答案:

答案 0 :(得分:2)

设计模式是解决软件设计问题的不同方法或工具或指南。掌握它们,帮助你

  1. 识别问题或要求的模式
  2. 提出解决此问题的一个或多个解决方案,评估优缺点并选择最合适的
  3. 这将是我的简短解释,不使用示例。但是我总是喜欢使用例子,所以如果我也必须提供例子,我会选择这些来演示'如果你看到这个,那么做'处理设计模式的方式

    1. 当您知道必须在交易中提供“撤消”功能时,您知道命令模式是一种可行的方式

    2. 当您必须使用资源管理器时,最好使用Singleton模式

    3. 但在为您的RGP游戏NPC设计AI时,您可以使用策略模式或模板模式。有些甚至可能选择装饰模式。并不总是有明确的赢家。取决于什么更适合你。

答案 1 :(得分:1)

在模块之间划分责任,任务和信息,并定义它们之间的关系的常见场景?

答案 2 :(得分:0)

设计模式是用于根据特定条件构建类的模式。

示例:

  1. 如果一个类在整个应用程序中只应该是一个实例(比如数据库适配器类),那么你需要Singleton模式,这是一种构造对象的模式。只有一个实例。

  2. 当您拥有包含大量属性和默认值的类时,可以使用Builder,这样可以通过链接它的setter来构建对象

    MyClass myClass = new MyClass.Builder()
        .setTitle("my title")
        .setBody("this is a body for the class")
        .setEnabled(true)
        .build();
    
  3. 当您在业务对象之间进行相关操作但其中没有一个拥有另一个业务对象时,您可以选择Facade,这将创建业务的外观来处理所述对象。

    I.E:您有MoviesSales个对象,但如果广告资源中有电影,则只能创建Sale。您无法使用Sales来检查Movies,但您可以创建一个名为Store的外观,并像Store#createSale()一样处理对象的操作。

  4. 如果您有基于事件的代码执行(例如点击),则可以使用ListenerCallback