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)

 

3.注意编程规范。

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