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. 注意编程规范。
浙公网安备 33010602011771号