码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——工厂模式

时间:2019-01-13 00:21:02      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:方法   ret   情况   移动   nbsp   nim   字符串   rate   了解   

普通工厂模式 若干接口+若干实现类+一个工厂类+测试类

//首先定义一个接口
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 }
//工厂类里有多个小工厂

 

设计模式——工厂模式

标签:方法   ret   情况   移动   nbsp   nim   字符串   rate   了解   

原文地址:https://www.cnblogs.com/wshn/p/10261313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!