10.6
实验5:建造者模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解建造者模式的动机,掌握该模式的结构;
2、能够利用建造者模式解决实际问题。
[实验任务一]:计算机组装
使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。
实验要求:
1. 画出对应的类图;
2. 提交源代码;
class CPU:
def __init__(self, model):
self.model = model
def __str__(self):
return f"CPU: {self.model}"
class Memory:
def __init__(self, capacity):
self.capacity = capacity
def __str__(self):
return f"内存: {self.capacity}GB"
class HardDisk:
def __init__(self, size):
self.size = size
def __str__(self):
return f"硬盘: {self.size}TB"
class Chassis:
def __init__(self, type):
self.type = type
def __str__(self):
return f"类型: {self.type}"
class Computer:
def __init__(self, cpu, memory, hard_disk, chassis):
self.cpu = cpu
self.memory = memory
self.hard_disk = hard_disk
self.chassis = chassis
def __str__(self):
return f"计算机: {self.cpu}, {self.memory}, {self.hard_disk}, {self.chassis}"
class ComputerBuilder:
def __init__(self):
self.cpu = None
self.memory = None
self.hard_disk = None
self.chassis = None
def set_cpu(self, cpu):
self.cpu = cpu
return self
def set_memory(self, memory):
self.memory = memory
return self
def set_hard_disk(self, hard_disk):
self.hard_disk = hard_disk
return self
def set_chassis(self, chassis):
self.chassis = chassis
return self
def build(self):
return Computer(self.cpu, self.memory, self.hard_disk, self.chassis)
class LaptopBuilder(ComputerBuilder):
def build_laptop(self):
return self.set_chassis("笔记本电脑").build()
class DesktopBuilder(ComputerBuilder):
def build_desktop(self):
return self.set_chassis("台式机").build()
laptop_builder = LaptopBuilder()
laptop = laptop_builder.set_cpu(CPU("笔记本电脑的intel i7")).set_memory(Memory(16)).set_hard_disk(HardDisk(1)).build_laptop()
print(laptop)
desktop_builder = DesktopBuilder()
desktop = desktop_builder.set_cpu(CPU("台式机的intel i9")).set_memory(Memory(32)).set_hard_disk(HardDisk(2)).build_desktop()
print(desktop)
浙公网安备 33010602011771号