您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第二季学习笔记-简单工厂模式
发布时间:2017-07-10 14:33:37编辑:雪饮阅读()
如下示例中是最普遍的通过main入口函数中new一个类而产生实例,通过实例调用类中的方法:
public class NewKeywordDemo
{
public static void main(String[] args){
ClothDoll cd=new ClothDoll();
System.out.println(cd.getInfo());
BarbieDoll bd=new BarbieDoll();
System.out.println(bd.getInfo());
}
}
//布娃娃
class ClothDoll
{
public String getInfo(){
return "我是布娃娃,我怕脏";
}
}
//芭比娃娃
class BarbieDoll
{
public String getInfo(){
return "我是芭比娃娃,我美的不可思议";
}
}
然而这种方式太依赖于被调用的类,如果被调用的类发生了变化,就会导致调用的实例可能调用不起来了。
降低依赖性被称为解耦,依赖性被称为耦合。
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。
示例代码:
public class NewKeywordDemo
{
public static void main(String[] args){
Doll clothDoll= DollFactory.getInstance("Cloth");
if(clothDoll!=null){
System.out.println(clothDoll.getInfo());
}
Doll barbieDoll= DollFactory.getInstance("Barbie");
if(barbieDoll!=null){
System.out.println(barbieDoll.getInfo());
}
}
}
class DollFactory
{
//因为要返回一个对象,而这个对象无法得知是属于ClothDoll或BarbieDoll
//所以只能返回这两者共同所属的接口
public static Doll getInstance(String name){
//根据条件产生不同对象
if("Cloth".equals(name)){
return new ClothDoll();
}
if("Barbie".equals(name)){
return new BarbieDoll();
}
else{
return null;
}
}
}
interface Doll
{
public String getInfo();
}
//布娃娃
class ClothDoll implements Doll
{
public String getInfo(){
return "我是布娃娃,我怕脏";
}
}
//芭比娃娃
class BarbieDoll implements Doll
{
public String getInfo(){
return "我是芭比娃娃,我美的不可思议";
}
}
关键字词:javase,简单工厂模式