每日短訊:設(shè)計(jì)模式-原型模式(一)

2023-05-05 07:13:34       來(lái)源:騰訊云


(相關(guān)資料圖)

原型模式是一種創(chuàng)建型設(shè)計(jì)模式,它可以通過(guò)克隆已有的對(duì)象來(lái)創(chuàng)建新的對(duì)象,避免了重復(fù)創(chuàng)建相似對(duì)象的開(kāi)銷(xiāo)。原型模式是一種基于對(duì)象復(fù)制的創(chuàng)建方式,它能夠在運(yùn)行時(shí)動(dòng)態(tài)地生成新對(duì)象,并根據(jù)需要進(jìn)行修改。

在原型模式中,我們需要定義一個(gè)原型接口或抽象類(lèi),這個(gè)接口或抽象類(lèi)需要定義用于復(fù)制自身的方法。然后我們可以通過(guò)實(shí)現(xiàn)這個(gè)接口或抽象類(lèi)來(lái)創(chuàng)建具體的原型對(duì)象,并通過(guò)克隆已有的對(duì)象來(lái)生成新對(duì)象。

下面我們通過(guò)一個(gè)例子來(lái)詳細(xì)介紹原型模式的使用方法和實(shí)現(xiàn)細(xì)節(jié)。

假設(shè)我們有一個(gè)學(xué)生類(lèi),其中包含學(xué)生的姓名和年齡信息,我們希望能夠根據(jù)已有的學(xué)生對(duì)象創(chuàng)建新的學(xué)生對(duì)象,并根據(jù)需要修改新對(duì)象的屬性。我們可以使用原型模式來(lái)實(shí)現(xiàn)這個(gè)需求。

首先,我們需要定義一個(gè)原型接口,該接口中需要包含用于復(fù)制自身的方法:

public interface Prototype {    Prototype clone();}

然后,我們需要定義一個(gè)具體的學(xué)生類(lèi),實(shí)現(xiàn)原型接口并重寫(xiě)復(fù)制方法:

public class Student implements Prototype {    private String name;    private int age;        public Student(String name, int age) {        this.name = name;        this.age = age;    }        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;    }        @Override    public Prototype clone() {        return new Student(name, age);    }}

在這個(gè)學(xué)生類(lèi)中,我們定義了學(xué)生的姓名和年齡屬性,并實(shí)現(xiàn)了原型接口中的 clone() 方法,該方法返回一個(gè)新的學(xué)生對(duì)象并復(fù)制原有對(duì)象的屬性。

關(guān)鍵詞:
x 廣告
x 廣告

Copyright @  2015-2022 海外生活網(wǎng)版權(quán)所有  備案號(hào): 滬ICP備2020036824號(hào)-21   聯(lián)系郵箱:562 66 29@qq.com