一直不知道什么情况下使用工厂模式,网上搜索了好久,看的也是云里雾里的,我说一下自己的理解,有不对的地方多指教哈.
场景: 项目中我们有特别多的Dialog,而且样式都不一样.这时候就可以用到我们的工厂模式了
1.创建一个工厂接口Shape(名字我没改哈)
interface Shape {
fun draw(layout:View)
}
2.创建实体类 Square
class Square :Shape {
override fun draw(layout: View) {
//这里就可以写我们的逻辑了
// layout.findViewById()
}
}
3.创建实体类 Square
class Rectangle : Shape {
override fun draw(layout: View) {
TODO("Not yet implemented")
}
}
4.在我们想弹窗的地方就可以调用了
val shapeFactory = ShapeFactory()
//获取 Circle 的对象,并调用它的 draw 方法
var shape1 = shapeFactory.getShape("zfb");
var view = layoutInflater.inflate(R.layout.activity_main,null,false)
//调用 Circle 的 draw 方法
shape1?.draw(view);
//获取 Rectangle 的对象,并调用它的 draw 方法
var shape2 = shapeFactory.getShape("wx");
//调用 Rectangle 的 draw 方法
shape2?.draw(view);
不知道大家有没有理解,有不对的地方欢迎评论