91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Kotlin工廠模式怎樣使用

小樊
84
2024-11-02 15:50:30
欄目: 編程語言

在Kotlin中,工廠模式是一種創建型設計模式,它提供了一種在不指定具體類的情況下創建對象的方法。工廠模式通常包括一個抽象產品(Abstract Product)和一個或多個具體產品(Concrete Product)以及一個工廠接口(Factory Interface)。

以下是在Kotlin中使用工廠模式的示例:

  1. 定義抽象產品(Abstract Product):
abstract class Shape {
    abstract fun area(): Double
}
  1. 定義具體產品(Concrete Product):
class Circle(val radius: Double) : Shape() {
    override fun area(): Double {
        return Math.PI * radius * radius
    }
}

class Rectangle(val width: Double, val height: Double) : Shape() {
    override fun area(): Double {
        return width * height
    }
}
  1. 定義工廠接口(Factory Interface):
interface ShapeFactory {
    fun createShape(type: String): Shape
}
  1. 實現具體工廠(Concrete Factory):
class CircleFactory : ShapeFactory {
    override fun createShape(type: String): Shape {
        return if (type == "circle") Circle(1.0) else throw IllegalArgumentException("Invalid shape type")
    }
}

class RectangleFactory : ShapeFactory {
    override fun createShape(type: String): Shape {
        return if (type == "rectangle") Rectangle(1.0, 1.0) else throw IllegalArgumentException("Invalid shape type")
    }
}
  1. 使用工廠模式創建對象:
fun main() {
    val circleFactory = CircleFactory()
    val rectangleFactory = RectangleFactory()

    val circle = circleFactory.createShape("circle")
    val rectangle = rectangleFactory.createShape("rectangle")

    println("Circle area: ${circle.area()}")
    println("Rectangle area: ${rectangle.area()}")
}

在這個示例中,我們定義了一個抽象產品Shape,兩個具體產品CircleRectangle,以及一個工廠接口ShapeFactory。我們還創建了兩個具體工廠CircleFactoryRectangleFactory,它們分別負責創建CircleRectangle對象。最后,我們在main函數中使用這些工廠來創建對象并計算它們的面積。

0
靖安县| 黄龙县| 台湾省| 庆城县| 南京市| 齐河县| 上林县| 中阳县| 怀化市| 莱芜市| 弋阳县| 镇宁| 金秀| 上林县| 西丰县| 东安县| 盘山县| 双桥区| 苏尼特左旗| 东兴市| 夏河县| 本溪市| 济宁市| 盐山县| 合阳县| 固原市| 东乌珠穆沁旗| 南江县| 凌云县| 丹棱县| 富平县| 左贡县| 高州市| 江津市| 太湖县| 浮梁县| 昔阳县| 怀仁县| 康保县| 新宾| 南召县|