抽象工厂模式
抽象工厂模式是所有形态模式中最为抽象和最具一般性的,抽象工厂模式可以向客户端提供接口,使得客户端在不必要指定产品的具体类型情况下,能够创建多个产品族的产品抽象。这里涉及到一个产品和产品族的概念,我百度百科找了一下,产品族。
1.代码实现
写完抽象工厂模式的代码后发现我的例子真的不太适合来说明这个抽象工厂模式,但是能够表达清楚原理就行,不必要计较合理不合理。比如说在学校有老师和学生,这是两个产品。我们把女老师和男老师又分为不同的两个产品(对象),男学生和女学生分成两个不同的产品。现在男老师和男学生是一个产品族,女老师和女学生是一个产品族。
现在假设只有男老师和男学生,可以通过实现老师和学生的接口来定义男老师和男学生的对象类。可以在抽象工厂继承出来一个男性工厂,用来获取一个男老师或者男学生的实例化对象。在主函数测试工厂,代码如下:
// Student.java
// 定义学生接口
interface Student{
public void introduce();
}
// Teacher.java
// 定义教师接口
interface Teacher{
public void introduce();
}
// MaleStudent.java
// 继承自Student类,是Student的一个产品
class MaleStudent implements Student{
public void introd