设计模式之工厂模式(女娲造人)

本文介绍了一个基于工厂模式的简单实现案例,通过该模式创建不同的人种对象并展示其特征。文章展示了良好的封装性和代码结构,易于扩展,并讨论了工厂模式的适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package design.factory;

public interface AbstractHumanFactory {

public abstract <T extends Human> T createHuman(Class<T> c);

}

package design.factory;

public class BlackHuman implements Human {

public void getColor() {
// TODO Auto-generated method stub
System.out.println("黑色人种");

}

public void talk() {
// TODO Auto-generated method stub
System.out.println("非洲语");

}

}


package design.factory;

public class YellowHuman implements Human {

public void getColor() {
// TODO Auto-generated method stub
System.out.println("黄色人种");

}

public void talk() {
// TODO Auto-generated method stub
System.out.println("中国话");

}

}


package design.factory;

public interface Human {

public void getColor();

public void talk();

}

package design.factory;

public class HumanFactory implements AbstractHumanFactory {

public <T extends Human> T createHuman(Class<T> c) {
// TODO Auto-generated method stub
Human human = null;
try{
human = (Human)Class.forName(c.getName()).newInstance();
}catch(Exception e){
e.printStackTrace();
}
return (T)human;
}

}
package design.factory;

public class NvWa {
public static void main(String[] args){
AbstractHumanFactory yinyanglu = new HumanFactory();
Human black = yinyanglu.createHuman(BlackHuman.class);
black.getColor();
black.talk();
Human yellow = yinyanglu.createHuman(YellowHuman.class);
yellow.getColor();
yellow.talk();
}

}

优点:良好的封装行,代码结构清晰,扩展性好,屏蔽了产品类,是典型的解耦框架。
使用场景:1.所有需要生成对象的地方都可以使用,不过要考虑是否增加代码的复杂性。
2.需要灵活的,可扩展的框架时可以考虑。
3.可用在异构项目上.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值