## 1.工厂类角色
这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。
2.抽象产品角色
它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
具体产品角色
工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
通过工厂模式来管理打印九九乘法表
具体代码实现
建立一个工厂类Factory,通过字符串来判断,以及有异常时候的处理
public class Factory {
public static void main(String[] args) {
int num = 9;
Factory qq = new Factory();
try {
qq.c("Left").nine(num);
qq.c("Right").nine(num);
qq.c("Center").nine(num);
qq.c("What").nine(num);
}catch (Exception e){
System.out.println("没有这个");
}
}
public Ee c(String string) throws Exception {
if (string.equals("Left")){
return new Left();
}else if (string.equals("Right")){
return new Right();
}else if (string.equals("Center")){
return new Center();
} else {
throw new Exception();
}
}
}
实现九九乘法表的左对齐
public class Left implements Ee{
@Override
public void nine(int num) {
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i; j++){
System.out.print(j +"*"+ i +"="+ i*j +"\t");
}
System.out.println();
}
}
}
实现九九乘法表的右对齐
public class Right implements Ee{
@Override
public void nine(int num) {
for (int i = 1; i <= num; i++) {
for (int k = 1; k <= (num-i); k++){
System.out.print("\t"+"\t");
}
for (int j = 1; j <= i; j++){
System.out.print(j +"*"+ i +"="+ i*j +"\t");
}
System.out.println();
}
}
}
实现九九乘法表的居中对齐
public class Center implements Ee{
@Override
public void nine(int num) {
for (int i = 1; i <= num ; i++) {
for (int k = 1; k < num-i; k++){
System.out.print("\t");
}
for (int j = 1; j <= i; j++){
System.out.print(j +"*"+ i +"="+ i*j +"\t");
}
System.out.println();
}
}
}
最后的接口
public interface Ee {
void nine(int num);
}