MST
星途 面试题库

面试题:Visual Basic 设计模式之工厂模式应用

请用 Visual Basic 实现一个简单的工厂模式,要求创建一个汽车工厂,能够生产不同品牌(如宝马、奔驰等)的汽车,每个品牌的汽车都有自己的启动和停止方法。请阐述设计思路并给出具体代码实现。
43.5万 热度难度
编程语言Visual Basic

知识考点

AI 面试

面试题答案

一键面试

设计思路

  1. 定义汽车接口:创建一个接口,定义所有汽车都必须实现的方法,即启动和停止方法。
  2. 创建具体汽车类:针对每个品牌(如宝马、奔驰)创建具体的类,这些类实现汽车接口。
  3. 创建汽车工厂类:该类负责根据传入的品牌信息创建相应品牌的汽车实例。

代码实现

' 定义汽车接口
Public Interface ICar
    Sub Start()
    Sub Stop()
End Interface

' 宝马汽车类,实现ICar接口
Public Class BMWCar
    Implements ICar
    Public Sub Start() Implements ICar.Start
        Console.WriteLine("宝马汽车启动")
    End Sub
    Public Sub Stop() Implements ICar.Stop
        Console.WriteLine("宝马汽车停止")
    End Sub
End Class

' 奔驰汽车类,实现ICar接口
Public Class BenzCar
    Implements ICar
    Public Sub Start() Implements ICar.Start
        Console.WriteLine("奔驰汽车启动")
    End Sub
    Public Sub Stop() Implements ICar.Stop
        Console.WriteLine("奔驰汽车停止")
    End Sub
End Class

' 汽车工厂类
Public Class CarFactory
    Public Shared Function CreateCar(ByVal brand As String) As ICar
        Select Case brand.ToUpper
            Case "BMW"
                Return New BMWCar()
            Case "BENZ"
                Return New BenzCar()
            Case Else
                Return Nothing
        End Select
    End Function
End Class

' 测试代码
Module Module1
    Sub Main()
        Dim bmwCar As ICar = CarFactory.CreateCar("BMW")
        If bmwCar IsNot Nothing Then
            bmwCar.Start()
            bmwCar.Stop()
        End If
        Dim benzCar As ICar = CarFactory.CreateCar("BENZ")
        If benzCar IsNot Nothing Then
            benzCar.Start()
            benzCar.Stop()
        End If
    End Sub
End Module