设计模式——工厂模式
程序员文章站
2022-07-05 15:38:55
普通工厂模式 若干接口+若干实现类+一个工厂类+测试类 public class Demo1 { // TODO Auto-generated method stub Animals animals=new Animals(); Zoo cat=animals.returnAnimal("Cat") ......
普通工厂模式 若干接口+若干实现类+一个工厂类+测试类
//首先定义一个接口
1 public interface zoo { //动物接口 2 void wlak();//每个动物都能有自己移动的方式 3 void eate();//每个动物都由自己吃饭的方式 4 }
//若干实现类 dog
public class dog implements zoo {//dog实现zoo
2 public void wlak() { 3 system.out.println("dog.wlak()"); 4 5 } 6 public void eate() { 7 system.out.println("dog.eate()"); 8 } 9 }
//若干实现类 cat
1 public class cat implements zoo{//cat实现zoo 2 3 @override 4 public void wlak() { 5 system.out.println("cat.wlak()"); 6 7 } 8 9 @override 10 public void eate() { 11 system.out.println("cat.eate()"); 12 13 } 14 }
// 工厂类
1 public class animals { 2 public zoo returnanimal(string name) { 3 if("cat".equals(name)) { 4 return new cat(); 5 }else { 6 return new dog(); 7 } 8 9 } 10 11 }
//这里可能出现字符串不匹配的情况,从而导致实例不能正常被创建,为了解决这个问题下面会单独介绍
//最后,写一个测试类,用于实现目标功能
public class demo1 {
public static void main(string[] args) {
// todo auto-generated method stub
animals animals=new animals();
zoo cat=animals.returnanimal("cat");
cat.eate();
cat.wlak();
zoo dog=animals.returnanimal("dog");
dog.eate();
dog.wlak();
}
}
//设计模式,普通工厂模式,定义一个接口用于保存工厂产品的共同特性,实现产品接口,用于构造产品,实现不同产品的不同细节
2.为了解决上面字符串参数传入错误,不能正常创建实例时,采用下面的方法,更改工厂类。
1 public class animals { 2 public zoo creatdog() { 3 return new dog(); 4 } 5 public zoo creatcat() { 6 return new cat(); 7 } 8 9 }
//工厂类里有多个小工厂