10.16

实验14:代理模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 

1、理解代理模式的动机,掌握该模式的结构;

2、能够利用代理模式解决实际问题。

 

[实验任务一]:婚介所

婚介所其实就是找对象的一个代理,请仿照我们的课堂例子论坛权限控制代理完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示对不起,不能早恋!,并终止业务。

实验要求:

1. 提交类图;

 

2. 提交源代码;

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def getName(self):
        return self.name

    def getAge(self):
        return self.age


class MarriageAgency:
    def findPartnerFor(self, person):
        print(f"正在为{person.getName()}寻找合适的伴侣...")
        # 这里可以添加实际寻找伴侣的复杂逻辑,比如从数据库查询、匹配条件等
        # 暂时只做简单示意,假设找到了一个虚拟伴侣
        print(f"为{person.getName()}找到了一个潜在的伴侣。")


class MarriageAgencyProxy:
    def __init__(self, agency):
        self.agency = agency

    def findPartnerFor(self, person):
        if person.getAge() < 18:
            print("对不起,不能早恋!")
            return
        self.agency.findPartnerFor(person)


class Client(Person):
    def seekPartner(self):
        agency_proxy = MarriageAgencyProxy(MarriageAgency())
        agency_proxy.findPartnerFor(self)


if __name__ == "__main__":
    # 创建一个年龄大于等于18岁的客户示例
    client1 = Client("张三", 25)
    print("张三 25岁")
    client1.seekPartner()

    print()

    # 创建一个年龄小于18岁的客户示例
    client2 = Client("李四", 16)
    print("李四 16岁")
    client2.seekPartner()

 

3. 注意编程规范。

 

 

posted @ 2024-11-27 08:19  The-rich  阅读(21)  评论(0)    收藏  举报