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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

設(shè)計(jì)模式-原型模式

2019-11-10 17:12:54
字體:
供稿:網(wǎng)友

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

給出如下場景: 人做某種運(yùn)動.

1.建立抽象類 人

2.建立抽象類 運(yùn)動

3.建立場景管理類,通過管理類實(shí)現(xiàn)場景

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 "在進(jìn)行"+super.getName()+"的運(yùn)動";	}	}

 

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 "在進(jìn)行" + base.Name+ "的運(yùn)動";	    }	    }}

 

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安庆市| 龙江县| 岗巴县| 长宁县| 克山县| 安顺市| 紫云| 厦门市| 尖扎县| 会同县| 咸丰县| 高淳县| 方正县| 昭觉县| 越西县| 石楼县| 监利县| 宣武区| 横峰县| 永泰县| 唐河县| 都匀市| 民丰县| 林芝县| 潮州市| 马尔康县| 陵川县| 卢氏县| 义马市| 隆子县| 贵南县| 九龙坡区| 措美县| 宁都县| 乌兰县| 凌源市| 闻喜县| 禄劝| 察雅县| 淳化县| 华坪县|