首页 > 其他 > 详细

工厂实际模式

时间:2018-02-02 20:45:50      阅读:184      评论:0      收藏:0      [点我收藏+]

工厂模式:(普通工厂模式,多个工厂方法模式,静态工厂方法模式)在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象。工厂模式根据不同的参数来实现不同的分配方案和创建对象。在工厂模式中,我们创建对象时不会暴露创建对象逻辑,并且是通过使用一个共同接口来指向新创建的对象。

1.普通工厂模式:
// 二者共同的接口
public interface Human{
public void eat();
public void sleep();
public void beat();
}

// 创建实现类 Male
public class Male implements Human{
public void eat(){
System.out.println("Male can eat.");
}
public void sleep(){
System.out.println("Male can sleep.");
}
public void beat(){
System.out.println("Male can beat.");
}
}
//创建实现类 Female
public class Female implements Human{
public void eat(){
System.out.println("Female can eat.");
}
public void sleep(){
System.out.println("Female can sleep.");
}
public void beat(){
System.out.println("Female can beat.");
}
}

// 创建普通工厂类
public class HumanFactory{
public Human createHuman(String gender){
if( gender.equals("male") ){
return new Male();
}else if( gender.equals("female")){
return new Female();
}else {
System.out.println("请输入正确的类型!");
return null;
}
}
}

// 工厂测试类
public class FactoryTest {
public static void main(String[] args){
HumanFactory factory = new HumanFactory();
Human male = factory.createHuman("male");
male.eat();
male.sleep();
male.beat();
}
}

2.多个工厂方法模式
// 多个工厂方法
public class HumanFactory{
public Male createMale() {
return new Male();
}
public Female createFemale() {
return new Female();
}
}

// 工厂测试类
public class FactoryTest {
public static void main(String[] args){
HumanFactory factory = new HumanFactory();
Human male = factory.createMale();
Human female = factory.createFemale();
male.eat();
male.sleep();
male.beat();
female.eat();
female.sleep();
female.beat();
}
}

静态工厂方法模式:省去创建工厂实例,直接通过工厂类调用静态方法实现实例化
// 多个工厂方法
public class HumanFactory{
public static Male createMale() {
return new Male();
}
public static Female createFemale() {
return new Female();
}
}

// 工厂测试类
public class FactoryTest {
public static void main(String[] args){
Human male = HumanFactory.createMale();
male.eat();
male.sleep();
male.beat();
}
}

工厂实际模式

原文:https://www.cnblogs.com/Jason-MLiu/p/8406553.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!