軟體設計模式————(代理模式)

财神给你送元宝發表於2024-11-21

[實驗任務一]:婚介所

婚介所其實就是找物件的一個代理,請仿照我們的課堂例子“論壇許可權控制代理”完成這個實際問題,其中如果年紀小於18週歲,婚介所會提示“對不起,不能早戀!”,並終止業務。

實驗要求:

1. 提交類圖;

2. 提交原始碼;

複製程式碼
 1 package tutorial14;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Client {
 6 
 7     public static void main(String[] args) {
 8         // TODO 自動生成的方法存根
 9         
10         AbstractMatchMaking amm=new MatchMakingProxy();
11         System.out.println("*******歡迎來到婚介所*******");
12         System.out.println("您可以簡單瀏覽一下我們的嘉賓資訊....");
13         amm.viewInformation();
14         System.out.println("*******請登記一下您的基本資訊*******");
15         System.out.println("您的年齡:");
16         Scanner in =new Scanner(System.in);
17         int age=in.nextInt();
18         amm.improveInformation(age);
19         if(age>=18) {
20             amm.postAnnouncement();
21         }
22         
23     }
24 
25 }
複製程式碼

複製程式碼
1 package tutorial14;
2 
3 public interface AbstractMatchMaking {
4 
5     public void viewInformation();
6     public void postAnnouncement();
7     public void improveInformation(int age);
8 }
複製程式碼

複製程式碼
 1 package tutorial14;
 2 
 3 public class MatchMaking implements AbstractMatchMaking{
 4 
 5     @Override
 6     public void viewInformation() {
 7         // TODO 自動生成的方法存根
 8         System.out.println("您正在瀏覽檢視婚介物件基本資訊");
 9     }
10 
11     @Override
12     public void postAnnouncement() {
13         // TODO 自動生成的方法存根
14         System.out.println("您釋出了一條徵婚啟事,請注意查收結果訊息");
15     }
16 
17     @Override
18     public void improveInformation(int age) {
19         // TODO 自動生成的方法存根
20         
21     }
22 
23 }
複製程式碼

複製程式碼
 1 package tutorial14;
 2 
 3 public class MatchMakingProxy implements AbstractMatchMaking{
 4 
 5     private MatchMaking client=new MatchMaking();
 6     private int age=18;
 7     @Override
 8     public void viewInformation() {
 9         // TODO 自動生成的方法存根
10         System.out.println("您正在瀏覽檢視婚介物件基本資訊");
11         
12     }
13 
14     @Override
15     public void postAnnouncement() {
16         // TODO 自動生成的方法存根
17         if(age>=18) {
18             System.out.println("釋出徵婚啟事");
19         }else if(age<18) {
20             System.out.println("對不起,不能早戀!");
21         }
22     }
23 
24     @Override
25     public void improveInformation(int age) {
26         // TODO 自動生成的方法存根
27         
28         this.age=age;
29         if(age<18) {
30             System.out.println("對不起,不能早戀!");
31         }else if(age>=18) {
32             System.out.println("資訊登記完成......");
33         }
34     }
35 
36 }
複製程式碼

  

3. 注意程式設計規範。

相關文章