1. 程式人生 > 其它 >Java/C++實現代理模式---婚介所

Java/C++實現代理模式---婚介所

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

類圖:

Java程式碼:

public abstract class Center
{
    protected String name;
    public Center(String name){this.name=name;}
    public abstract void findlove(Person person);
}


public class Marry extends Center
{
     
public Marry(String name){super(name);} public void findlove(Person person) { if(person.getAge()<18) { System.out.println(name+":"+person.getName()+",對不起!不能早戀!"); } else if(person.getAge()<100) { System.out.println(name
+":"+person.getName()+",我們會為您找到合適的伴侶!"); } else { System.out.println(name+":"+person.getName()+",對不起!您年齡太大了!"); } } } public class Person { protected String name; protected int age; public Person(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; } } public class Client { public static void main(String args[]) { Center center1,center2; center1=new Marry("婚介"); center2=new Marry("婚介"); Person b1=new Person("喜羊羊",29); Person b2=new Person("美羊羊",16); center1.findlove(b1); center2.findlove(b2); } }

C++程式碼:

#include <iostream>
#include <string>
using namespace std;


class Person
{
public:
    string name;
    int age;
    Person(string n,int a)
    {
        name=n;
        age=a;
    }
};

class Center
{
protected:
    string name;
public:
    Center(string n){name=n;}
    virtual void findlove(Person* person)=0;
};


class Marry:public Center
{
public:
    Marry(string name):Center(name){}
    void findlove(Person* person)
    {
        if(person->age<18)
        {
            cout <<name<<":"<<person->name<<",對不起!不能早戀!" << endl;
        }
        else if(person->age<100)
        {
            cout <<name<<":"<<person->name<<",我們會為您找到合適的伴侶!" << endl;
        }
        else
        {
            cout <<name<<":"<<person->name<<",對不起!您年齡太大了!" << endl;
        }
    }
};



int main()
{
    Center* center1,* center2;
    center1=new Marry("婚介");
    center2=new Marry("婚介");
    Person* b1=new Person("喜羊羊",29);
    Person* b2=new Person("美羊羊",16);
    center1->findlove(b1);
    center2->findlove(b2);
    return 0;
}

執行結果: