大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java設(shè)計(jì)模式

結(jié)構(gòu)型模式應(yīng)用實(shí)驗(yàn)

結(jié)構(gòu)型模式(Structural Pattern)描述如何將類或者對(duì)象結(jié)合在一起形成更大的結(jié)構(gòu),就像搭積木, 可以通過簡(jiǎn)單積木的組合形成復(fù)雜的、功能更為強(qiáng)大的結(jié)構(gòu)。結(jié)構(gòu)型模式可以分為類結(jié)構(gòu)型模式和對(duì)象結(jié)構(gòu)型模式,也可分為代理模式(Proxy)、適配器模式(Adapter)、橋接模式(Bridge)、裝飾模式 (Decorator )、外觀模式(Facade)、享元模式(Flyweight)和組合模式(Composite)等 7 類。

實(shí)驗(yàn)?zāi)康?/span>

本實(shí)驗(yàn)的主要目的如下。

⒈了解 7 種“結(jié)構(gòu)型模式”的定義、特點(diǎn)和工作原理。

⒉理解 7 種“結(jié)構(gòu)型模式”的結(jié)構(gòu)、實(shí)現(xiàn)和應(yīng)用場(chǎng)景。

⒊學(xué)會(huì)應(yīng)用 7 種“結(jié)構(gòu)型模式”進(jìn)行軟件開發(fā)。

實(shí)驗(yàn)原理

⒈結(jié)構(gòu)型模式的工作原理

結(jié)構(gòu)型模式重點(diǎn)考慮類或?qū)ο蟮牟季址绞剑淠康氖菍F(xiàn)有類或?qū)ο蠼M成更大的結(jié)構(gòu)。按照其顯示方式的不同,結(jié)構(gòu)型模式可分為類結(jié)構(gòu)型模式和對(duì)象結(jié)構(gòu)型模式。前者采用繼承機(jī)制來組織接口和類,后者采用組合或聚合來組合對(duì)象。

由于組合關(guān)系和或聚合關(guān)系比繼承關(guān)系耦合度低,滿足“合成復(fù)用原則”,所以對(duì)象結(jié)構(gòu)型模式比類結(jié)構(gòu)型模式具有更大的靈活性。如果按目的來分,結(jié)構(gòu) 型模式共 7 種,每種模式的實(shí)驗(yàn)大概要花 2 個(gè)學(xué)時(shí),大家可以根據(jù)實(shí)驗(yàn)計(jì)劃來選做若干個(gè)實(shí)驗(yàn)。下面以代理(Proxy)模式為例,介紹其實(shí)驗(yàn)過程。

⒉代理模式的工作原理

代理模式是在訪問對(duì)象和目標(biāo)對(duì)象之間增加一個(gè)代理對(duì)象,該對(duì)象起到中介作用和保護(hù)目標(biāo)對(duì)象的作用。另外,它還可以擴(kuò)展目標(biāo)對(duì)象的功能,并且將客戶端與目標(biāo)對(duì)象分離,這在一定程度上降低了系統(tǒng)的耦合度。

代理模式的結(jié)構(gòu)比較簡(jiǎn)單,主要是通過定義一個(gè)繼承抽象主題的代理來包含真實(shí)主題,從而實(shí)現(xiàn)對(duì)真實(shí)主題的訪問,其結(jié)構(gòu)圖如圖 1 所示。

圖1 代理模式的結(jié)構(gòu)圖

代理模式的主要角色如下。

① 抽象主題(Subject)類:通過接口或抽象類聲明真實(shí)主題和代理對(duì)象實(shí)現(xiàn)的業(yè)務(wù)方法。

② 真實(shí)主題(Real Subject)類:實(shí)現(xiàn)了抽象主題中的具體業(yè)務(wù),是代理對(duì)象所代表的真實(shí)對(duì)象,是最終要引用的對(duì)象。

③ 代理(Proxy)類:提供了與真實(shí)主題相同的接口,其內(nèi)部含有對(duì)真實(shí)主題的引用,它可以訪問或控制或擴(kuò)展真實(shí)主題的功能。

實(shí)驗(yàn)內(nèi)容

⒈用代理模式設(shè)計(jì)一個(gè)房產(chǎn)中介的模擬程序。

要求:房產(chǎn)中介有介紹和代售韶關(guān)碧桂園房子的權(quán)利,以及登記購房者信息權(quán)利。這里的房產(chǎn)中介是代理者,韶關(guān)碧桂園是真實(shí)主題。

⒉按照以上要求設(shè)計(jì)類圖和編寫 Java 源程序。

實(shí)驗(yàn)要求

所設(shè)計(jì)的實(shí)驗(yàn)程序要滿足以下兩點(diǎn)。

⒈體現(xiàn)“代理模式”的工作原理。

⒉符合面向?qū)ο笾械?ldquo;開閉原則”和“里氏替換原則”。

實(shí)驗(yàn)步驟

⒈用 UML 設(shè)計(jì)“房產(chǎn)中介”模擬程序的結(jié)構(gòu)圖。

“房產(chǎn)中介”模擬程序的結(jié)構(gòu)圖如圖 2 所示。

圖2 房產(chǎn)中介模擬程序的結(jié)構(gòu)圖

⒉根據(jù)結(jié)構(gòu)圖寫出“房產(chǎn)中介”模擬程序的源代碼。

房產(chǎn)中介模擬程序的源代碼如下。

package proxy;
import java.awt.*;
import javax.swing.*;
public class SgHouseProxy
{
    public static void main(String[] args)
    {
        HouseProxy proxy=new HouseProxy();
        proxy.display();
    }
}
//抽象主題:房主
interface HouseOwner
{
    void display();
}
//真實(shí)主題:韶關(guān)碧桂園
class SgBiguiyuan extends JFrame implements HouseOwner
{
    private static final long serialVersionUID=1L;
    public SgBiguiyuan()
    {
        super("房產(chǎn)中介代售韶關(guān)碧桂園房子");                    
    }
    public void display()
    {       
        this.setLayout(new GridLayout(1,1));
        JLabel l1=new JLabel(new ImageIcon("src/proxy/SgBiguiyuan.jpg"));
        this.add(l1);   
        this.pack();
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
//代理:房產(chǎn)中介
class HouseProxy implements HouseOwner
{
    private SgBiguiyuan realSubject=new SgBiguiyuan();
    public void display()
    {
        preRequest();
        realSubject.display();
        postRequest();
    }
    public void preRequest()
    {
          System.out.println("房產(chǎn)中介介紹韶關(guān)碧桂園房子。");
    }
    public void postRequest()
    {
          System.out.println("房產(chǎn)中介登記購房者信息。");
    }
}

⒊上機(jī)測(cè)試程序,寫出運(yùn)行結(jié)果。

“房產(chǎn)中介”模擬程序的運(yùn)行結(jié)果如圖 3 所示。

圖3 房產(chǎn)中介模擬程序的運(yùn)行結(jié)果

⒋按同樣的步驟設(shè)計(jì)其他“結(jié)構(gòu)型模式”的程序?qū)嵗?/p>

⒌寫出實(shí)驗(yàn)心得。

全部教程
主站蜘蛛池模板: 337p欧洲日本大胆艺术 | 欧美胖老妇 | 国产视频一区二区在线播放 | 精品国产高清毛片 | 中文字幕日本在线 | 日日夜人人澡人人澡人人看免 | 久久精品国产亚洲婷婷 | 欧美日韩一区二区三 | 人人澡人人干 | 中文字幕在线观看亚洲日韩 | 亚洲国产精品a在线 | 国产精品久久做爰 | 九九资源网 | 伊人久久久综在合线久久在播 | 天天干天天干天天干天天干天天干 | 四虎精品成人a在线观看 | 亚洲国产精品自产拍在线播放 | 亚洲免费一区二区 | 国内精品久久国产大陆 | 福利视频自拍 | 国产99在线 | 亚洲 | 亚洲原创区 | 曰本女人性配视频 | 精品国产日韩亚洲一区二区 | 色资源网站 | 久久久久久88色愉愉 | 免费人成激情视频在线看 | 高清视频一区二区 | 日本高清不卡二区 | 性生活视频网址 | 国产成人精品视频免费大全 | 久久综合九色综合亚洲 | jizz成熟丰满中国妇女 | 国产亚洲一区二区三区在线观看 | 女人18毛片a级18毛多水真多 | 综合 欧美 国产 视频二区 | 男人在线网站 | 色偷偷亚洲女人天堂观看欧 | 真人毛片免费拍拍拍aa视频 | 亚洲伊人久久综合 | jizzjizz女人中国 |