简单工厂模式是java 设计模式里头比较简单基础的一种,其特点是根据用户不同的参数而返回不同的实例。
使用简单工厂的好处在于在今后可能的系统扩展或修改时带来更大的可扩展行和更少的代码修改。
根据《重构》 中的介绍,尽量减少 生成新的对象的代码。
在这里,我自己写了一个简单工厂的小例子:
最后输出结果:
在这个例子中,先声明了一个animal 父类,animal 类中还有一个 shout 方法,其中:
System.out.println("you create a :"+this.getClass().getName());
的作用就是打印出调用 shout 方法的animal 类或其子类的类名
通过这样的方式,我们在使用 工厂方法生产的 animal 子类就可以明确到底是产生了那个子类了。
看看 AnimalFactory 工厂方法,我还顺带着用了一下多态,啥叫多态 : 声明了父类,产生的却是某个子类。
用 Animal animal =null 来声明一个 父类,
animal = new Dog () 产生一个 DOG 子类
PS:为了保证代码的健壮性,也为了向程序阅读者强调 AnimalFactory 仅仅只是一个工厂类,是用来产生 Animal 的子类对象的,
可以 将 AnimalFactory 的默认构造函数设置为private ,这样即使他人想实例化 AnimalFactory 这个工厂类,也无能为力。
修改后的工厂类方法: