码迷,mamicode.com
首页 > 其他好文 > 详细

原型模式

时间:2015-08-09 22:48:26      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

prototype模式是一种对象创建型模式,他采取复制原型对象的方法来创建类的实例,使用原型创建出来的实例具有和原型一样的数据

package com.org.prototype;
import java.util.ArrayList;
import java.util.List;

public class Person implements Cloneable{//实现Cloneable接口

    // 姓名
    private String name;
    // 年龄
    private int age;
    // 性别
    private String sex;
    //朋友
    private List<String> friends;

    public List<String> getFriends() {
        return friends;
    }

    public void setFriends(List<String> friends) {
        this.friends = friends;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    
    public Person clone() {//实现克隆的方法
        try {
            Person person  = (Person)super.clone();
            List<String> newfriends = new ArrayList<String>();
            for(String friend : this.getFriends()) {
                newfriends.add(friend);
            }
            person.setFriends(newfriends);
            return  person;
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
            return null;
        }
    }

}
客户端代码

package com.org.prototype;
import java.util.ArrayList;
import java.util.List;


public class MainClass {
    public static void main(String[] args) {

        
        Person person1 = new Person();
        List<String> friends = new ArrayList<String>();
        friends.add("James");
        friends.add("Yao");
        
        person1.setFriends(friends);
        
        Person person2 = person1.clone();
        
        System.out.println(person1.getFriends());
        System.out.println(person2.getFriends());
        
        friends.add("Mike");
        person1.setFriends(friends);
        System.out.println(person1.getFriends());
        System.out.println(person2.getFriends());
    }
}


 

原型模式

标签:

原文地址:http://my.oschina.net/goudingcheng/blog/489811

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!