1.设计模式_简单工厂模式

1.简单的工厂模式                Design pattern _ simple factory pattern

1.简单工厂模式解释:

      简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例       

      简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

 

2.代码例子:

                   

package com.test.desiginpattern.factory.vehicle;


public class MovieDataBaseByAction extends MovieDateBase{

public String[] getResults()
{
String[] movies = new String[3];
switch (area) {
case "大陆":
movies = new String[] {"英雄","一代宗师","霍元甲"};
break;
case "香港":
movies = new String[] {"功夫","叶问","古惑仔"};
break;
}
return movies;
}
}

 

 

package com.test.desiginpattern.factory.vehicle;


public class MovieDataBaseByComedy extends MovieDateBase{

public String[] getResults()
{
String[] movies = new String[3];
switch (area) {
case "大陆":
movies = new String[] {"人在囧途","让子弹飞","泰囧"};
break;
case "香港":
movies = new String[] {"大话西游","少林足球","功夫"};
break;
}
return movies;
}
}

 

 

 

package com.test.desiginpattern.factory.vehicle;


public class MovieDateBase {
protected String area; //输入地区查询
//活得结果集
public String[] getResults()
{
String[] results = {};
return results;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
}

 

 

package com.test.desiginpattern.factory.vehicle;
public class MovieFactory 
{
//根据参数获取相应实现业务方法的实体类
public static MovieDateBase getMovies(String operate)
{
MovieDateBase movieClass = new MovieDateBase();

switch(operate)
{
case "动作" : movieClass = new MovieDataBaseByAction();break;
case "喜剧" : movieClass = new MovieDataBaseByComedy();break;
}
return movieClass;
}

//打印信息用
public static void printContet(String printInfo,String[] content)
{
System.out.println("---"+printInfo+"----");
for(int i=0; i<content.length; i++)
{
System.out.println(content[i]);
}
}

//模拟客户端请求 传入电影类型获取类型库电影 在类型库电影传入地区获取该地区电影
public static void main(String[] args) {
MovieDateBase movieOperatea = getMovies("动作");
movieOperatea.area="香港";
String[] moviesa = movieOperatea.getResults();
//打印电影信息
printContet("动作片香港地区:",moviesa);

MovieDateBase movieOperateb = getMovies("喜剧");
movieOperateb.area="大陆";
String[] moviesb = movieOperateb.getResults();
//打印电影信息
printContet("喜剧片大陆地区",moviesb);
}

}

 

package com.test.desiginpattern.factory.vehicle;


public class MovieDataBaseByAction extends MovieDateBase{

public String[] getResults()
{
String[] movies = new String[3];
switch (area) {
case "大陆":
movies = new String[] {"英雄","一代宗师","霍元甲"};
break;
case "香港":
movies = new String[] {"功夫","叶问","古惑仔"};
break;
}
return movies;
}
}

 

 

package com.test.desiginpattern.factory.vehicle;


public class MovieDataBaseByComedy extends MovieDateBase{

public String[] getResults()
{
String[] movies = new String[3];
switch (area) {
case "大陆":
movies = new String[] {"人在囧途","让子弹飞","泰囧"};
break;
case "香港":
movies = new String[] {"大话西游","少林足球","功夫"};
break;
}
return movies;
}
}

 

 

 

package com.test.desiginpattern.factory.vehicle;


public class MovieDateBase {
protected String area; //输入地区查询
//活得结果集
public String[] getResults()
{
String[] results = {};
return results;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
}

 

 

package com.test.desiginpattern.factory.vehicle;
public class MovieFactory 
{
//根据参数获取相应实现业务方法的实体类
public static MovieDateBase getMovies(String operate)
{
MovieDateBase movieClass = new MovieDateBase();

switch(operate)
{
case "动作" : movieClass = new MovieDataBaseByAction();break;
case "喜剧" : movieClass = new MovieDataBaseByComedy();break;
}
return movieClass;
}

//打印信息用
public static void printContet(String printInfo,String[] content)
{
System.out.println("---"+printInfo+"----");
for(int i=0; i<content.length; i++)
{
System.out.println(content[i]);
}
}

//模拟客户端请求 传入电影类型获取类型库电影 在类型库电影传入地区获取该地区电影
public static void main(String[] args) {
MovieDateBase movieOperatea = getMovies("动作");
movieOperatea.area="香港";
String[] moviesa = movieOperatea.getResults();
//打印电影信息
printContet("动作片香港地区:",moviesa);

MovieDateBase movieOperateb = getMovies("喜剧");
movieOperateb.area="大陆";
String[] moviesb = movieOperateb.getResults();
//打印电影信息
printContet("喜剧片大陆地区",moviesb);
}

}

 

 

 

---动作片香港地区:----
功夫
叶问
古惑仔
---喜剧片大陆地区----
人在囧途
让子弹飞
泰囧

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值