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

设计模式——工厂模式

程序员文章站 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 }
//工厂类里有多个小工厂