当前位置: 移动技术网 > IT编程>开发语言>Java > java-工厂

java-工厂

2019年12月09日  | 移动技术网IT编程  | 我要评论
class mouse{
    public void sayhi(){};
}

class dellmouse extends mouse {
    @override
    public void sayhi() {
        system.out.println("产品:戴尔鼠标");
    }
}
class hpmouse extends mouse {
    @override
    public void sayhi() {
        system.out.println("产品:惠普鼠标");
    }
}

class keyboard {
    public void kick(){};
}
class hpkeyboard extends keyboard {
    @override
    public void kick() {
        system.out.println("产品:惠普键盘");
    }
}
class dellkeyboard extends keyboard {
    @override
    public void kick() {
        system.out.println("产品:戴尔键盘");
    }
}
//总的工厂接口
interface pcfactory {
    public mouse createmouse() ;
    public keyboard createkeyboard() ;
}
class hpfactory implements pcfactory {
    @override
    public mouse createmouse() {
        return new hpmouse();
    }

    @override
    public keyboard createkeyboard() {
        return new hpkeyboard();
    }
}
class dellfactory implements pcfactory {
    @override
    public mouse createmouse() {
        return new dellmouse();
    }
    @override
    public keyboard createkeyboard() {
        return new dellkeyboard();
    }
}

//当需要增加一个华硕工厂时:
class asusmouse extends mouse {
    @override
    public void sayhi() {
        system.out.println("产品:华硕鼠标");
    }
}
class asuskeyboard extends keyboard {
    @override
    public void kick() {
        system.out.println("产品:华硕键盘");
    }
}
class asusfactory implements pcfactory {
    @override
    public mouse createmouse() {
        return new asusmouse();
    }
    @override
    public keyboard createkeyboard() {
        return new asuskeyboard();
    }
}

public class normfactory {
    public static void main(string[] args) {
        pcfactory hpfact = new hpfactory();
        mouse hpm = hpfact.createmouse();
        keyboard hpkbd = hpfact.createkeyboard();
        
        pcfactory dellfact = new dellfactory();
        mouse dellm = dellfact.createmouse();
        keyboard dellkbd = dellfact.createkeyboard();
        
        hpm.sayhi();
        dellm.sayhi();
        
        hpkbd.kick();
        dellkbd.kick();
    }
}

打印结果如下:

产品:惠普鼠标
产品:戴尔鼠标
产品:惠普键盘
产品:戴尔键盘

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网