zoukankan      html  css  js  c++  java
  • Java设计模式之原型设计模式

    概述

    设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
    使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
    设计模式可以分为三大类,分别是创建型、结构型和行为型。

    创建型

    原型模式(Prototype Pattern)

    用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
    image.png

    优点
    提高性能

    缺点
    已有的类没有写相应的clone方法,较为麻烦

    使用场景
    资源优化场景;类初始化需要很多资源;性能和安全有要求的场景

    代码如下
    原型类

    public abstract class Prototype implements Cloneable{
    	
    	private String id;
    	
    	public Prototype(String id) {
    		this.id = id;
    	}
    	
    	public String getId() {
    		return this.id;
    	}
    	
    	public Prototype clone() throws CloneNotSupportedException {
    	
    		return (Prototype) super.clone();
    		
    	}
    	
    }
    

    具体原型类

    public class CreateProtype extends Prototype{
    	
    	public CreateProtype(String id) {
    		super(id);
    	}
    }
    

    客户端代码

    public class JavaDemo {
    	
    	public static void main(String[] args) throws CloneNotSupportedException {
    		
    		Prototype p1 = new CreateProtype("1");
    		Prototype p2 = p1.clone();
    		System.out.println(p1 == p2);
    	}
    	
    }
    

    输出结果为false,说明并不是传值引用 ,两个对象有自己的地址。


    本文参考了菜鸟教程和书籍大话设计模式。

  • 相关阅读:
    第15周作业
    软件工程结课作业
    第13次作业--邮箱的正则表达式
    第12次作业
    第10次作业
    Java 8 新的时间日期库
    你还在用if-else吗?
    Java并发编程:4种线程池和缓冲队列BlockingQueue
    ZooKeeper学习第八期——ZooKeeper伸缩性(转)
    ZooKeeper学习第七期--ZooKeeper一致性原理(转)
  • 原文地址:https://www.cnblogs.com/helloDuo/p/10303629.html
Copyright © 2011-2022 走看看