take is cheap, I'll show you my code
1 简单工厂模式:有一个工厂类来制造产品
public interface Phone{
void make();
}
public class HwPhone implements Phone{
@Override
public void make(){
System.out.println("Hw Phone make");
}
public HwPhone(){
this.make();
}
}
public class Iphone implements Phone{
@Overide
public void make(){
System.out.println("iphone make");
}
public Iphone(){
this.make();
}
}
工厂类:
public class PhoneFactory{
public Phone makePhone(String type){
if(type.equals("hw")){
return new HwPhone();
}else if(type.equals("iphone")){
return new Iphone();
}
}
}
// 测试
public class App{
public static void main(String[] args){
PhoneFactory phoneFactory=new PhoneFactory();
Phone hwPhone=phoneFactory.makePhone("hw");
Phone iphone=phoneFactory.makePhone("iphone");
}
}
2 工厂方法模式:有多个派生工厂继承抽象工厂
public interface AbstractFactory{
Phone makePhone();
}
public class HwFactory implements AbstractFactory{
@Override
public Phone makePhone(){
return new HwPhone();
}
}
public class IphoneFactory implements AbstractFactory{
@Override
public Phone makePhone(){
return new Iphone();
}
}
//测试
public class App{
public static void main(String[] args){
AbstractFactory abstractFactory=new HwFactory();
abstractFactory.makePhone();
AbstractFactory abstractFactory2=new IphoneFactory();
abstractFactory2.makePhone();
}
}
3 抽象工厂模式 不只是生产一类产品,可以生产多类产品
public interface AbstractFactory{
Phone makePhone();
// 添加生产电脑
PC makePc();
}
public interface PC{
void makePC();
}
public class HwPC implements PC{
@Override
public void makePC(){
System.out.println("make Hw PC");
}
public HwPC(){
this.makePC();
}
}
public class MAC implements PC{
@Override
public void makePC(){
System.out.println("make MAC");
}
public MAC(){
this.makePC();
}
}
public class HwFactory implements AbstractFactory{
@Override
public Phone makePhone(){
return new HwPhone();
}
@Override
public PC makePC(){
return new HwPC();
}
}
public class IphoneFactory implements AbstractFactory{
@Override
public Phone makePhone(){
return new Iphone();
}
@Override
public PC makePC(){
return new MAC();
}
}

369

被折叠的 条评论
为什么被折叠?



