设计模式之享元模式

来源:互联网 发布:php会员卡源代码 编辑:程序博客网 时间:2024/06/17 20:37

1类图



2java示例


public class Test {public static void main(String[] args) {Factory factory=new StudentFactory();Person p1=factory.getPerson("010101");if(p1.getName()==null||p1.getName().equals("")){p1.setName("Mark");p1.setAge(23);}Person p2=factory.getPerson("010101");System.out.println(p2.getName()+":"+p2.getAge());}}

public interface Factory {Person getPerson(String sno);}
public class StudentFactory implements Factory {private Map<String,Person> personMap=new HashMap<String,Person>();@Overridepublic Person getPerson(String sno) {Person p=personMap.get(sno);if(p==null){p=new Student(sno);personMap.put(sno, p);}return p;}}

public class Person {protected String name;protected int age;public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}public String getName() {return name;}}

public class Student extends Person {private String sno;public Student(String sno){this.sno=sno;}}




0 0