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

    模式定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

    - 由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。
    - 目标对象是原型对象的一个克隆。也就是说,通过Prototype模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的值。
    - 根据对象克隆深度层次的不同,有浅度克隆与深度克隆。

    下面我们使用Prototype模式来实现细胞(Cell)的自身复制过程。
    Java语言提供了对象复制的机制,Prototype模式的Java实现一般也通过实现Cloneable接口来实现。
    这里我们也通过实现Cloneable接口来说明Prototype模式。
     
    public class Cell implements Cloneable {
        //细胞壁
        private String cellWall;
        //细胞膜
        private String cellMembrane;
        //细胞组织
        private String cellularTissue;
     
        //细胞的自身复制
        //这里重载了Object#clone()方法,为了方便外部调用,把返回值由Object修改为Cell,并把访问级别设置为public
        public Cell clone() {
            try {
                //只需简单地调用super.clone();即可
                return (Cell)super.clone();
            } catch (CloneNotSupportedException e) {
                throw (new InternalError(e.getMessage()));
            }
        }
    }
     
    //调用:
    public class Client {
        public static void main(String[] args) {
            //准备原型细胞
            Cell cell = new Cell();
            cell.setCellWall("cell wall 1");
            ...
            //克隆原型细胞
            Cell clonedCell = cell.clone();
            ...
        }
    }
     
  • 相关阅读:
    怎样判断某个分辨率是不是 16:9
    最简单的判断是否为IE浏览器的方法
    S4 smartforms切换到非word编辑器
    字符串中数字和汉字之前打空格
    elasticsearch 中term查询
    小程序 反编译 pc微信
    vue-element-admin vue-amap使用高德地图 文档没有示例代码
    高德地图 自适应 显示多个点标记
    laravel5 清理 bootstrap/cache/config.php
    element-admin 上传 跨域 问题 http-request
  • 原文地址:https://www.cnblogs.com/jyx140521/p/2823474.html
Copyright © 2011-2022 走看看