码迷,mamicode.com
首页 > 其他好文 > 详细

工厂模式

时间:2020-07-28 22:30:38      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:业务   lang   asn   原来   empty   href   code   else   out   

简单工厂模式

遵守的原则

OOP七大原则

代码实现

//接口
public interface Car {
    void name();
}
//实现接口,创建WuLing
public class WuLing implements Car {

    @Override
    public void name() {
        System.out.println("五菱宏光");
    }
}
//实现接口,创建Tesla
public class Tesla implements Car {

    @Override
    public void name() {
        System.out.println("特斯拉");
    }
}
//工厂
public class CarFactory {

    public static Car getCar(String car){
        if (!car.isEmpty()){
            if (car.equals("五菱")){
                return new WuLing();
            }else if(car.equals("特斯拉")){
                return new Tesla();
            }else {
                return null;
            }
        }else {
            return null;
        }
    }

}
 //消费者
public class Consumer {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入车子名称");
        if (scanner.hasNext()) {
            String name = scanner.nextLine();
            Car car = CarFactory.getCar(name);
            car.name();
        }
        scanner.close();
    }
}

抽象工厂模式

定义

提供一个创建一系列相关或者相互依赖对象的接口,无需指定他们具体的类。我自己的理解就是在一定意义提前创建了一个相关产品对象的产品集合。拙见而已,不对的地方望指正

代码实现

小结

违反开闭原则,每次消费不同的车子,就要改变原来的工厂。
抽象工厂在一个稳定的业务结构中很强大,反之也会违反开闭原则。

工厂模式

标签:业务   lang   asn   原来   empty   href   code   else   out   

原文地址:https://www.cnblogs.com/dakuzai/p/13393186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!