小明:最近我在做一个宿舍管理系统,想加个代理价的功能,你有什么建议吗?
小李:代理价是什么意思?是说不同宿舍有不同的价格吗?
小明:对,比如有的宿舍是普通间,有的是VIP间,价格不一样。我想用代理模式来处理这些不同的价格。
小李:那你可以设计一个接口,然后让不同的宿舍类型去实现这个接口,这样就符合代理模式的思想了。
小明:听起来不错,能给我个例子吗?

小李:当然可以,下面是一个简单的Python示例:
class Price:
def get_price(self):
pass
class NormalRoom(Price):
def get_price(self):
return 200
class VIPRoom(Price):
def get_price(self):
return 500
class RoomProxy(Price):
def __init__(self, room_type):
self.room = None
if room_type == 'normal':
self.room = NormalRoom()
elif room_type == 'vip':
self.room = VIPRoom()
def get_price(self):
return self.room.get_price()
# 使用示例
room = RoomProxy('vip')
print("房间价格:", room.get_price())
小明:明白了,这样以后如果要增加新的房间类型,只需要添加新的类,不需要修改现有代码。
小李:没错,这就是代理模式的好处,提高了系统的可扩展性。
小明:谢谢你的帮助,我现在对系统的设计更有信心了。
小李:不客气,记得多测试,确保各个模块都能正常工作。
