耦合:在开发过程当中,一个模块严重依赖另一个模块,那么就说他们之间的耦合度较高,高耦合会严重影响代码的可维护性和可扩展性。
.
.
本案例解耦方法:接口+工厂类
1:创建接口
public interface demo {
public void outstring(String s);
}
2:接口的实现类
实现类1
public class demoimp implements demo{
@Override
public void outstring(String s) {
System.out.println("demoimp:"+s );
}
}
实现类2
public class demoimp2 implements demo{
@Override
public void outstring(String s) {
System.out.println("demoimp2:"+s );
}
}
3:创建工厂,本工厂使用了单例模式
public class demoFactory {
private demo de;
//单例
// 1. 私有的构造器-禁止在类的外部创建本类的实例
private demoFactory(){
// 接口的具体实现类
de=new demoimp2();
}
//2. 私有的静态的本类唯一实例-提供整个项目共同访问的那个实例
private static demoFactory factory=new demoFactory();
//3. 共有的静态的返回本类唯一实例的方法-供类的外部获取唯一实例
public static demoFactory getFactory(){
return factory;
}
public demo getUserService(){
return de;
}
}
4.具体的调用方法
public class test {
public static void main(String[] args) {
//调用工厂
demoFactory df= demoFactory.getFactory();
//通过工厂获取接口的实体类
demo de= df.getUserService();
//调用实体类中的方法
de.outstring("de");
}
}