设计模式之工厂模式的学习心得

今天学习了设计模式里面的创建型模式之工厂模式(Factory Pattern),其是Java最常用的设计模式之一。这种设计模式主要是提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个**共同的接口**来指向新创建的对象。

理解:根据传字符串值来确定生成具体的对象来实现方法。

思路:
    1.设计一个公共的接口;
    2.分别设计具体的类去实现接口;
    3.设计一个类来决定决定实例化哪一个工厂对象;(工厂类)
    4.设计public类,通过main方法来实现整个调用过程。

具体设计:
    1.设计一个名为课程(Course)的接口,其中的方法名为learn,返回值为void;
    2.设计三个具体实现接口的类,分别为Chinese、History和English,并都重写learn方法;
    3.设计工厂类,名为CourseFactory,其目的是实现字符串传值来决定生成具体的对象;
    4.设计public类FactoryDemo来实现整个调用过程。

具体代码模块:


    1.Course接口:
            interface Course{
                void learn();
            }
    2.实现接口的类:

        ①Chinese类:
                                class Chinese implements Course{
                                    public void learn(){
                                        System.out.println("你在学习语文");
                                    }
                                }
        ②History类:
                class History implements Course{
                    public void learn(){
                        System.out.println("你在学习历史");
                    }
                }
        ③English类:
                class English implements Course{
                    public void learn(){
                        System.out.println("你在学习英语");
                    }
                }
    3.工厂类CourseFactory:
            class CourseFactory{
                public Course getCourse(String CourseName){                                                             //通过字符串的传值获取具体对象的方法
                    if(CourseName==null){
                        return null;
                    }
                    if(CourseName==Chinese){
                        return new Chinese();
                    }else if(CourseName==History){
                        return new History();
                    }else if(CourseName==English){
                        return new English();
                    }
                    return null;
                }
            }
    4.public实现类:
            public class FactoryDemo{
                public static void main(String[] args){
                    CourseFactory c1=new CourseFactory();
                    Course c2=c1.getCourse("Chinese")                                                      //传递值决定你需要的对象
                    c2.learn();                                  //输出对应的对象的方法;               
总结:
    工厂模式主要解决接口对象选择问题,可以帮助我们在不同条件下实现创建不同的实例,且其创建过程在子类实现,具有安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值