微信

使用微信服务,更方便

职友集>程序员面试题 > 什么是设计模式?介绍一下你了解的设计模式有哪些?

什么是设计模式?介绍一下你了解的设计模式有哪些?

2014-08-03 06:30:01 阅读( 86 )

1580人 收藏本页

标签:程序员面试题

设计模式:在大量的实践中总结、理论化之后优选的代码结构、编程风格,解决问题的方案和途径。

组成部分:

模式名称:名词或名词短语,用来描述模式的问题、解决方案和效果

问题:描述何时使用该模式。

解决方案:描述模式的组成,各自的职责,相互关系

效果(consequence):描述使用模式的效果及使用这个模式时应该权衡的问题。

   单例设计模式:背景:某个类的实例对象在内存中只有一个。

实现:

1、  构造函数似有。

2、  由本类提供一个静态的返回值是本类类型的获得本类对象的方法。

3、  定义一个静态的本类类型的成员变量来保存本类类型的对象。

 /**

 * 单例模式

 * 1、构造函数私有

 * 2、由本类提供一个或得本类对象的静态方法

 * 3、定义一个保存实例对象的静态成员变量

 * @author Administrator

 *

 */

public class SingletonPattern {

  private double random;

  private static SingletonPattern sp;

  private SingletonPattern(){

    random = Math.random();

  }

  public double getRandom(){

    return random;

  }

  static public SingletonPattern getInstance(){

    if(sp == null){

      sp = new SingletonPattern();

    }

    return sp;

  }

}

  策略模式:背景:在抽象父类中对各个子类的共同功能进行描述或实现。

 

  模板模式:在父类中应尽可能多的将子类的共同特性进行描述或实现,而将各个子类的不同功能在子类中进行具体实现,限制子类设计的随意性–(由父类实现共同部分,由子类实现不同部分)。

  组合设计模式:例:

public class ConstructionOfBankInBeijing {

    private ConstructionOfBank construction; //组合

    private double addInterest;

public ConstructionOfBankInBeijing(ConstructionOfBank construction, double addInterest) {

        this.construction = construction;

       this.addInterest = addInterest;

    }

    public double CalculateInterestNew(){

       return construction.calculateInterest()+addInterest;

    }

}

来自IT公司面试手册

下一篇:电子商务面试题

上一篇:什么是哈希表?

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题