国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

設計模式-原型模式

2019-11-10 20:08:14
字體:
來源:轉載
供稿:網友

原型模式又稱對象復制模式,淺拷貝的時候,一般采用Object類的clone()方法.

給出如下場景: 人做某種運動.

1.建立抽象類 人

2.建立抽象類 運動

3.建立場景管理類,通過管理類實現場景

java代碼如下:

package com.liu.pattern6;public class PRototype {	public static void main(String[] args) {		// TODO Auto-generated method stub		Manager.play(new Man("張三","15"), new Run("跑步"));	}	}class Manager{		public static void play(Person p,Activity a){				Person p2 = (Person) p.clone();		Activity a2 = (Activity)a.clone();				System.out.println(p2.toString() + a2.toString());			}}abstract class Person implements Cloneable {		public Person(String name,String age){		this.name =name;		this.age = age;	}		private String name;	private String age;	public String getName() {		return name;	}		public void setName(String name) {		this.name = name;	}		public String getAge() {		return age;	}		public void setAge(String age) {		this.age = age;	}		public Object clone(){		try {			return super.clone();		} catch (CloneNotSupportedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		return null;	}		public abstract String toString();}class Man extends Person{	public Man(String name, String age) {		super(name, age);		// TODO Auto-generated constructor stub	}	@Override	public String toString() {		// TODO Auto-generated method stub		return super.getName()+"("+super.getAge()+")";	}	}abstract class Activity implements Cloneable{		public Activity(String name){		this.name = name;	}		private String name;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}		public Object clone(){		try {			return super.clone();		} catch (CloneNotSupportedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		return null;	}		public abstract String toString();}class Run extends Activity{	public Run(String name) {		super(name);		// TODO Auto-generated constructor stub	}	@Override	public String toString() {		// TODO Auto-generated method stub		return "在進行"+super.getName()+"的運動";	}	}

 

c#代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace com.liu.pattern6{    class Prototype    {        static void Main(string[] args)        {            Manager.play(new Man("張三", "15"), new Run("跑步"));        }    }    class Manager    {        public static void play(Person p, Activity a){				Person p2 = (Person) p.clone();		Activity a2 = (Activity)a.clone();				System.Console.WriteLine(p2.toString() + a2.toString());        System.Console.ReadKey();			    }    }    abstract class Person {	        private String _name;        private String _age;        public String Name{            set{                _name = value;             }            get{                return _name;            }        }        public String Age{            set{                _age = value;             }            get{                return _age;            }        }	    public Person(String name,String age){		    Name =name;		    Age = age;	    }		    public Object clone(){            return base.MemberwiseClone();	    }		    public abstract String toString();    }    class Man : Person{	    public Man(String name, String age):base(name,age) {	    }	    public override String toString() {		    // TODO Auto-generated method stub		    return base.Name+"("+base.Age+")";	    }	    }    abstract class Activity{	    	    public Activity(String name){		    Name = name;	    }		    private String _name;        public String Name {            set { _name = value; }            get { return _name; }        }		    public Object clone(){            return base.MemberwiseClone();	    }		    public abstract String toString();    }    class Run : Activity{	    public Run(String name):base(name) {		    // TODO Auto-generated constructor stub	    }        public override String toString()        {		    // TODO Auto-generated method stub            return "在進行" + base.Name+ "的運動";	    }	    }}

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南澳县| 镇原县| 海晏县| 武强县| 玛沁县| 孝感市| 巨鹿县| 乌鲁木齐县| 集贤县| 合作市| 万宁市| 页游| 紫金县| 汽车| 阳朔县| 乳山市| 宕昌县| 东方市| 吴川市| 松滋市| 建宁县| 上蔡县| 措勤县| 平远县| 玛多县| 吉木乃县| 台东市| 广安市| 板桥市| 泰安市| 张家港市| 盐津县| 永靖县| 师宗县| 富蕴县| 凤翔县| 广宗县| 康定县| 永善县| 宣威市| 名山县|