栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java笔记(设计模式:简单工厂模式):

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java笔记(设计模式:简单工厂模式):

1.简单工厂模式: 1)概念:
也称为"静态工厂方法模式",主要作用负责某些类的实例的创建过程!
2)利弊:
    优点:通过工厂类完成各个类的对象的创建
    弊端:当有新的类型增加,需要不断的修改工厂类,维护性难度大!
3)案例:
 * 动物类
 */
public  class Animal {
    public void eat(){
        System.out.println("动物都需要吃饭...");
    }
    public void sleep(){
        System.out.println("动物都需要休息...");
    }
}
public class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }

    @Override
    public void sleep() {
        System.out.println("狗躺着睡...");
    }
}
public class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("猫吃鱼...");
    }

    @Override
    public void sleep() {
        System.out.println("猫趴着睡");
    }
}
public class Pig extends  Animal{
    @Override
    public void eat() {
        System.out.println("猪吃白菜...");
    }

    @Override
    public void sleep() {
        System.out.println("猪侧着睡");
    }
}
* 动物工厂类
 */
public class AnimalFactory {
    //构造方法私有化
    private AnimalFactory(){}

    //提供静态功能
  

  //优化;抽象类多态
    public static Animal createAnimal(Object obj){ //向上转型:
        if(obj instanceof  Cat){
            return new Cat() ;
        }else if(obj instanceof  Dog){
            return new Dog() ;
        }else if(obj instanceof  Pig){
            return new Pig() ;
        }
        return  null ;
    }
}
public class SimpleFactory {

    public static void main(String[] args) {

        //具体类
        Cat c = new Cat() ;
        c.eat();
        c.sleep();
        Dog d = new Dog() ;
        d.eat();
        d.sleep();

        System.out.println("--------------------------------") ;

        //提供一个工厂类,负责这些动物的创建
        //创建一只狗
     

     //问题:随着新的类型增加,需要修改工厂类,而且代码都是写死的!
        Animal animal = AnimalFactory.createAnimal(new Cat());
        if(animal!=null){
            animal.eat();
            animal.sleep();
        }

    }
}


   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号