设计模式 -原型模式

设计模式 -原型模式 (Prototype)

一、基本介绍

  • 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
  • 原型模式是一个创建型设计模式,允许一个对象再创建另外一个可定制的对象,不需要知道创建的细节
  • 工作原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来进行创建,对象.clone()

二、注意事项

  1. 浅拷贝

    浅拷贝 只对 基本数据类型其真正的拷贝作用,对于引用类型来说的话,只是简单的对引用类型地址进行了拷贝,即使进行了多次的浅拷贝,多个对象中地引用类型还是指的同一个

  2. 深拷贝

    深拷贝用来解决浅拷贝问题

    深拷贝实现方式:

    • 方式一:重写 clone 方法进行实现深拷贝

       super.clone()
      
    • 方式二:通过对象序列化进行深拷贝推荐使用

      public Object deepClone() {
              ByteArrayOutputStream byteArrayOutputStream = null;
              ObjectOutputStream objectOutputStream = null;
              ByteArrayInputStream byteArrayInputStream = null;
              ObjectInputStream objectInputStream = null;
      
              try {
                  byteArrayOutputStream = new ByteArrayOutputStream();
                  objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
      
                  objectOutputStream.writeObject(this);
      
      
                  byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
                  objectInputStream = new ObjectInputStream(byteArrayInputStream);
      
                  SpringDemo springDemo = (SpringDemo) objectInputStream.readObject();
                  return springDemo;
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (ClassNotFoundException e) {
                  e.printStackTrace();
              }finally {
                  try {
                      byteArrayInputStream.close();
                      byteArrayInputStream.close();
                      objectOutputStream.close();
                      byteArrayInputStream.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              return null;
          }
      
1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计模式支撑。 2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,但是不知道怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,比如 单例模式的8种实现方式、工厂模式的3种实现方式、适配器模式的3种实现、代理模式的3种方式、深拷贝等 3) 如果你想写出规范、漂亮的程序,就花时间来学习下设计模式吧 课程内容和目标 本课程是使用Java来讲解设计模式,考虑到设计模式比较抽象,授课采用 图解+框架源码分析的方式 1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂模式原型模式、建造者模式、工厂模式。结构型模式:适配器模式(3种实现)、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式(3种实现)。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式) 2) 学习目标:通过学习,学员能掌握主流设计模式,规范编程风格,提高优化程序结构和效率的能力。
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页