第八章 面向对象高级应用
一、什么是设计模式?为什么要用什么模式 ............................................................................... 2 二、简单工厂设计模式 ................................................................................................................... 3 三、单例设计模式 ........................................................................................................................... 4
一、什么是设计模式?为什么要用什么模式
设计模式相当于古代的兵书,比如【武穆遗书】、【孙子兵法】,在这些兵书中记载的是两军对峙时,我军用什么方法才能击破对方的阵型,而这些方法不是一朝一夕就能想出来的,而是从大量的实战经验中总结出来的。 兵书用于打仗,而设计模式用于软件设计与开发,这些都是通过前人不断的经验积累,总结出来软件开发过程中遇到的问题以及解决这些问题的方案。 我们需要用设计模式解决现实软件开发过程中碰到的问题。 举例:
这是我们之前写的计算器,在代码中我们需要通过比较多的if else进行判断,而判断的目的在于实例化哪个子类对象;但随着软件需求的变化,我们需要增加n个子类,此时前台调用者也需要相应的变化代码,这样软件代码不够灵活;为了解决这个问题我们可以使用相应的设计模式。
二、简单工厂设计模式
该模式主要用于 创建同一个父类的各个子类对象,而且子类产品的变化不会影响前台程序员的调用;
上面的代码就是运用的工厂设计模式,Factory类中的Create方法主要用于创建各个子类对象,Main函数是调用者,在代码中只接触到父类和工厂,至于子类被工厂隐藏;
三、单例设计模式
正常情况下我们通过实例化可以创建无数个对象,而有一些项目必须保证类的对象只能有一个,这时我们可以用设计模式中的单例模式,单例模式就是保证类的实例只有一个。
stu1、stu2、stu3其实指向的是同一个实例,除了第一次创建对象;