今天学习了设计模式里面的创建型模式之工厂模式(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();
总结:
工厂模式主要解决接口对象选择问题,可以帮助我们在不同条件下实现创建不同的实例,且其创建过程在子类实现,具有安全性。