还是直接上源代码,既然我们不能一下子就明白,那我们就先敲打10遍,然后慢慢感悟和理解,这是我自己感悟写的代码。
IBookFactory接口:
package com.liuqiang.model.AbstractFactory;
public interface IBookFactory {
IBook cBook();
IBook javaBook();
}
EnglishBookFactory类:
package com.liuqiang.model.AbstractFactory;
public class EnglishBookFactory implements IBookFactory {
@Override
public IBook cBook() {
return new EnglishCBook();
}
@Override
public IBook javaBook() {
return new EnglishJavaBook();
}
}
ChineseBookFactory类:
package com.liuqiang.model.AbstractFactory;
public class ChineseBookFactory implements IBookFactory {
@Override
public IBook cBook() {
return new ChineseCBook();
}
@Override
public IBook javaBook() {
return new ChineseJavaBook();
}
}
IBook接口:
package com.liuqiang.model.AbstractFactory;
public interface IBook {
void readBook();
}
EnglishCBook类:
package com.liuqiang.model.AbstractFactory;
public class EnglishCBook implements IBook {
@Override
public void readBook() {
System.out.println("我们在读英文的C语言书籍");
}
}
EnglishJavaBook类:
package com.liuqiang.model.AbstractFactory;
public class EnglishJavaBook implements IBook {
@Override
public void readBook() {
System.out.println("我们在读英文的Java语言书籍");
}
}
ChineseCBook类:
package com.liuqiang.model.AbstractFactory;
public class ChineseCBook implements IBook {
@Override
public void readBook() {
System.out.println("我们在读中文的C语言书籍");
}
}
ChineseJavaBook类:
package com.liuqiang.model.AbstractFactory;
public class ChineseJavaBook implements IBook {
@Override
public void readBook() {
System.out.println("我们在读中文的Java语言书籍");
}
}
最后的测试Test类:
package com.liuqiang.model.AbstractFactory;
public class Test {
public static void main(String[] args) {
IBookFactory efactory = new EnglishBookFactory();
IBookFactory cfactory = new ChineseBookFactory();
efactory.cBook().readBook();
efactory.javaBook().readBook();
cfactory.cBook().readBook();
cfactory.javaBook().readBook();
}
}
测试结果如下:
我们在读英文的C语言书籍
我们在读英文的Java语言书籍
我们在读中文的C语言书籍
我们在读中文的Java语言书籍
现在开始吧,疯狂的练习代码。
欢迎大家一起和我进行交流,学习,欢迎大家指出不足之处,请联系QQ:497820217 备注:优快云。
本文为原创,如需要转载,请注明出处。