简单工厂类是常用的设计模式,大家也不陌生,简单讲解一下,我认为的好处,1.松耦合 2.可以扩展 3.可复用,具体解释按代码解释
设计模式图:
工厂类SportFactory,抽象类Sports,实现类Football、Basketball
1.松耦合 体现在Football、Basketball每个对象都是独立管理自己内部,需要的时候,通过工厂类,而不是直接耦合Football、Basketball任何一个类
2.扩展性 体现在如果要打排球、只要添加一个类继承Sports实现playSports这个方法,外部使用上还是工厂生成类,执行playSport方法,具体实现,底层设计去实现,使用方无需关心。
3.可复用性,Sports这个类的方法可以一直复用,使用端不需要调basketBall的playSports方法。
具体各个类代码如下:
Sport类
public abstract class Sports {
//运动
abstract void playSports();
}
basketball 类
public class Basketball extends Sports{
@Override
void playSports() {
// TODO Auto-generated method stub
System.out.println("打篮球");
}
}
football类
public class Football extends Sports{
@Override
void playSports() {
// TODO Auto-generated method stub
System.out.println("踢足球");
}
}
SportsFactory工厂类
public class SportsFactory {
Sports sports = null;
public Sports CreateSports(String type) {
switch (type) {
case "Football":
sports = new Football();
break;
case "Basketball":
sports = new Basketball();
default:
break;
}
return sports;
}
}
SportsTest测试类
public class SportsTest {
public static void main(String[] args) {
Sports sports = new SportsFactory().CreateSports("Football");
sports.playSports();
Sports sports1 = new SportsFactory().CreateSports("Basketball");
sports1.playSports();
}
}