package com.engaworld.devise.tactics;
/*
----分离出项目中可变换的部分,做成接口,分别实现
*/
public abstract class A {
IA ia;
public String a1(){
return "父类方法a1";
}
public abstract String a2();
}
————————————————————————————
package com.engaworld.devise.tactics;
public class Aimpl {
public String a2(){
return "父类方法a2";
}
}
--------------------------------------------------------
package com.engaworld.devise.tactics;
public class GetIAImpl {
// private static IA ia;
/*
//静�?
public static IA getIa() {
return ia = new IAImpl();
}
public static IA getIa1() {
return ia = new IAImpl_1();
}
*/
//动�?
private IA ia;
public IA getIa() {
return ia;
}
public void setIa(IA ia) {
this.ia = ia;
}
}
—————————————————————————————
package com.engaworld.devise.tactics;
public interface IA {
String ia1();
String ia2();
}
----------------------------------------------------------
package com.engaworld.devise.tactics;
public class IAImpl_1 implements IA {
public String ia1() {
// TODO Auto-generated method stub
return "IA.ia1";
}
public String ia2() {
// TODO Auto-generated method stub
return "IA.ia2绗簩绉嶅疄鐜";
}
}
---------------------------------------------------------
package com.engaworld.devise.tactics;
public class IAImpl implements IA {
public String ia1() {
// TODO Auto-generated method stub
return "IA.ia1";
}
public String ia2() {
// TODO Auto-generated method stub
return "IA.ia2第一种实";
}
}
-----------------------------------------------------------
package com.engaworld.devise.tactics;
public class TheMain extends A{
public void theMain() {
System.out.println("父类方法a1=="+this.a1());
System.out.println("父类方法a2=="+this.a2());
// ia = GetIAImpl.getIa();
// System.out.println("IA.ia1第一种实�?="+ia.ia1());
// System.out.println("IA.ia2第一种实�?="+ia.ia2());
//
// ia = GetIAImpl.getIa1();
// System.out.println("IA.ia1第二种实�?="+ia.ia1());
// System.out.println("IA.ia2第二种实�?="+ia.ia2());
GetIAImpl gia = new GetIAImpl();
gia.setIa(new IAImpl());
ia = gia.getIa();
System.out.println("IA.ia1第一种实�?="+ia.ia1());
System.out.println("IA.ia2第一种实�?="+ia.ia2());
gia.setIa(new IAImpl_1());
ia = gia.getIa();
System.out.println("IA.ia1第二种实�?="+ia.ia1());
System.out.println("IA.ia2第二种实�?="+ia.ia2());
}
@Override
public String a2() {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
TheMain tm = new TheMain();
tm.theMain();
}
}
/*
----分离出项目中可变换的部分,做成接口,分别实现
*/
public abstract class A {
IA ia;
public String a1(){
return "父类方法a1";
}
public abstract String a2();
}
————————————————————————————
package com.engaworld.devise.tactics;
public class Aimpl {
public String a2(){
return "父类方法a2";
}
}
--------------------------------------------------------
package com.engaworld.devise.tactics;
public class GetIAImpl {
// private static IA ia;
/*
//静�?
public static IA getIa() {
return ia = new IAImpl();
}
public static IA getIa1() {
return ia = new IAImpl_1();
}
*/
//动�?
private IA ia;
public IA getIa() {
return ia;
}
public void setIa(IA ia) {
this.ia = ia;
}
}
—————————————————————————————
package com.engaworld.devise.tactics;
public interface IA {
String ia1();
String ia2();
}
----------------------------------------------------------
package com.engaworld.devise.tactics;
public class IAImpl_1 implements IA {
public String ia1() {
// TODO Auto-generated method stub
return "IA.ia1";
}
public String ia2() {
// TODO Auto-generated method stub
return "IA.ia2绗簩绉嶅疄鐜";
}
}
---------------------------------------------------------
package com.engaworld.devise.tactics;
public class IAImpl implements IA {
public String ia1() {
// TODO Auto-generated method stub
return "IA.ia1";
}
public String ia2() {
// TODO Auto-generated method stub
return "IA.ia2第一种实";
}
}
-----------------------------------------------------------
package com.engaworld.devise.tactics;
public class TheMain extends A{
public void theMain() {
System.out.println("父类方法a1=="+this.a1());
System.out.println("父类方法a2=="+this.a2());
// ia = GetIAImpl.getIa();
// System.out.println("IA.ia1第一种实�?="+ia.ia1());
// System.out.println("IA.ia2第一种实�?="+ia.ia2());
//
// ia = GetIAImpl.getIa1();
// System.out.println("IA.ia1第二种实�?="+ia.ia1());
// System.out.println("IA.ia2第二种实�?="+ia.ia2());
GetIAImpl gia = new GetIAImpl();
gia.setIa(new IAImpl());
ia = gia.getIa();
System.out.println("IA.ia1第一种实�?="+ia.ia1());
System.out.println("IA.ia2第一种实�?="+ia.ia2());
gia.setIa(new IAImpl_1());
ia = gia.getIa();
System.out.println("IA.ia1第二种实�?="+ia.ia1());
System.out.println("IA.ia2第二种实�?="+ia.ia2());
}
@Override
public String a2() {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
TheMain tm = new TheMain();
tm.theMain();
}
}