欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式之工厂方法模式

程序员文章站 2024-01-05 17:14:22
...

定义

定义一个用于创建对象的接口,让子类决定实例化那个类。

Android 源码中的工厂方法模式

  1. Activity的各种生命周期
  2. ArrayList和HashSet

特点

  • 优点:
    1.工厂方法模式完全符合设计原则,降低了对象之间的耦合。高层模块只需要知道产品的抽象类,其他的实现都不需要关心。
    2.良好的封装性,代码结构清晰。扩展性好。

  • 缺点:
    每次我们为工厂方法模式添加新的产品时就要编写一个新的产品类。同时还要引入抽象层,这必然会导致类结构的复杂化,所以,在某些情况比较简单时,是否要使用工厂模式,需要设计者权衡利弊了。

使用场景

在任何需生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用 new 就可以完成创建的对象无需使用工厂模式。

简单实现

产品抽象类:

public abstract class Product {
    public abstract void method();
}

产品具体类:

public class ProductA extends Product {
    @Override
    public void method() {
        Log.d("TAG", "我是产品A ");
    }
}

工厂抽象类:

public abstract class Factory {
    public abstract Product createProduct();
}

工厂具体类:

public class ConcreteFactory extends Factory {
    @Override
    public Product createProduct() {
        return new ProductA();
    }
}

使用:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initData();
    }

    private void initData() {
        Factory factory = new ConcreteFactory();
        Product product = factory.createProduct();
        product.method();
    }
}

结果:

D/TAG: 我是产品A 

上一篇:

下一篇: