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

Java設計模式

結構型模式應用實驗

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

實驗目的

本實驗的主要目的如下。

⒈了解 7 種“結構型模式”的定義、特點和工作原理。

⒉理解 7 種“結構型模式”的結構、實現和應用場景。

⒊學會應用 7 種“結構型模式”進行軟件開發。

實驗原理

⒈結構型模式的工作原理

結構型模式重點考慮類或對象的布局方式,其目的是將現有類或對象組成更大的結構。按照其顯示方式的不同,結構型模式可分為類結構型模式和對象結構型模式。前者采用繼承機制來組織接口和類,后者采用組合或聚合來組合對象。

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

⒉代理模式的工作原理

代理模式是在訪問對象和目標對象之間增加一個代理對象,該對象起到中介作用和保護目標對象的作用。另外,它還可以擴展目標對象的功能,并且將客戶端與目標對象分離,這在一定程度上降低了系統的耦合度。

代理模式的結構比較簡單,主要是通過定義一個繼承抽象主題的代理來包含真實主題,從而實現對真實主題的訪問,其結構圖如圖 1 所示。

圖1 代理模式的結構圖

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

① 抽象主題(Subject)類:通過接口或抽象類聲明真實主題和代理對象實現的業務方法。

② 真實主題(Real Subject)類:實現了抽象主題中的具體業務,是代理對象所代表的真實對象,是最終要引用的對象。

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

實驗內容

⒈用代理模式設計一個房產中介的模擬程序。

要求:房產中介有介紹和代售韶關碧桂園房子的權利,以及登記購房者信息權利。這里的房產中介是代理者,韶關碧桂園是真實主題。

⒉按照以上要求設計類圖和編寫 Java 源程序。

實驗要求

所設計的實驗程序要滿足以下兩點。

⒈體現“代理模式”的工作原理。

⒉符合面向對象中的“開閉原則”和“里氏替換原則”。

實驗步驟

⒈用 UML 設計“房產中介”模擬程序的結構圖。

“房產中介”模擬程序的結構圖如圖 2 所示。

圖2 房產中介模擬程序的結構圖

⒉根據結構圖寫出“房產中介”模擬程序的源代碼。

房產中介模擬程序的源代碼如下。

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();
}
//真實主題:韶關碧桂園
class SgBiguiyuan extends JFrame implements HouseOwner
{
    private static final long serialVersionUID=1L;
    public SgBiguiyuan()
    {
        super("房產中介代售韶關碧桂園房子");                    
    }
    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);
    }
}
//代理:房產中介
class HouseProxy implements HouseOwner
{
    private SgBiguiyuan realSubject=new SgBiguiyuan();
    public void display()
    {
        preRequest();
        realSubject.display();
        postRequest();
    }
    public void preRequest()
    {
          System.out.println("房產中介介紹韶關碧桂園房子。");
    }
    public void postRequest()
    {
          System.out.println("房產中介登記購房者信息。");
    }
}

⒊上機測試程序,寫出運行結果。

“房產中介”模擬程序的運行結果如圖 3 所示。

圖3 房產中介模擬程序的運行結果

⒋按同樣的步驟設計其他“結構型模式”的程序實例。

⒌寫出實驗心得。

全部教程
主站蜘蛛池模板: 亚洲国产精品一区二区久久 | 一区二区不卡久久精品 | 又黄又爽又成人免费视频 | 大乳欲妇三级一区二区三区 | 99国产大尺度福利视频 | 天天操天天射天天色 | 青青草好吊色 | 亚洲免费毛片 | 国产日韩欧美亚洲 | 91国内在线国内在线播放 | 91www成人久久 | 欧美久久久久欧美一区 | 日韩国产欧美成人一区二区影院 | 亚洲国产精品不卡毛片a在线 | 国内久久久久影院精品 | 青青热在线精品视频免费 | 欧美成人综合视频 | 不卡视频免费在线观看 | 中文字幕在线免费视频 | 国产在线一区二区 | 久久精品国产日本波多麻结衣 | 国产羞羞事1000部在线观看 | 看全色黄大色黄大片色责看的 | 国产永久精品 | 国产精品久久久久久爽爽爽 | 精品一区二区三区四区乱码90 | 99ri在线视频| 久久日本经典片免费看 | 四虎国产精品永免费 | 毛片免费永久不卡视频观看 | 日本一级特黄a大片在线 | 国产一区二区三区在线免费观看 | 天天操天天玩 | 久久大香香蕉国产免费网站 | 亚洲国产精品网站久久 | 国产成人精品视频频 | 亚洲系列在线 | 国产精品原创永久在线观看 | 99免费在线播放99久久免费 | 精品国产一二三区 | 老司机午夜精品视频在线观看免费 |