首先 设计模式只是一种设计风格(或者是一种设计思路,一种巧妙解决问题的中方法) 设计模式很多。 博主励志写完这23种设计模式
上图片
1.父类的引用指向子类的对象,或者接口指向实现类
我们定义了一个接口
public interface MobilePhone {
void run();
}
我们定义类 实现接口
public class HuaweiIphone implements MobilePhone{
@Override
public void run() {
System.out.println("====华为手机======");
}
}
我们定义类 实现接口
public class XimiIphone implements MobilePhone {
@Override
public void run() {
System.out.println("======小米手机========");
}
}
我们定义工厂 实现对象 的生产
public class Factory {
public static MobilePhone getIphone(String type) {
if (type.equals("小米")) {
return new XimiIphone();
} else if (type.equals("华为")) {
return new HuaweiIphone();
}
return null;
}
}
测试生产对象
public class Test {
public static void main(String[] args) {
MobilePhone xiao = Factory.getIphone("小米");
xiao.run();
MobilePhone hua = Factory.getIphone("华为");
hua.run();
}
}
**
工厂方法模式
**
抽象手机
public interface MobilePhone {
void run();
}
抽象工厂
public interface Factory {
MobilePhone getIphone();
}
public class HuaweiIphone implements MobilePhone{
@Override
public void run() {
System.out.println("====华为手机======");
}
}
public class XimiIphone implements MobilePhone {
@Override
public void run() {
System.out.println("小米手机");
}
}
public class HuaweiIphoneFactory implements Factory{
@Override
public MobilePhone getIphone() {
return new HuaweiIphone();
}
}
public class XimiIphoneFactory implements Factory{
@Override
public MobilePhone getIphone() {
return new XimiIphone();
}
}
测试
public class Test {
public static void main(String[] args) {
HuaweiIphoneFactory huaweiIphoneFactory = new HuaweiIphoneFactory();
MobilePhone iphone = huaweiIphoneFactory.getIphone();
XimiIphoneFactory xi= new XimiIphoneFactory();
MobilePhone iphone1 = xi.getIphone();
}
}