网站开发团队投入,关键词排名怎么快速上去,python建设购物网站,wordpress付费主题下载核心思想
在简单工厂模式的基础上进一步的抽象化具备更多的可扩展和复用性#xff0c;增强代码的可读性使添加产品不需要修改原来的代码#xff0c;满足开闭原则 优缺点
优点
符合单一职责#xff0c;每个工厂只负责生产对应的产品符合开闭原则#xff0c;添加产品只需添…核心思想
在简单工厂模式的基础上进一步的抽象化具备更多的可扩展和复用性增强代码的可读性使添加产品不需要修改原来的代码满足开闭原则 优缺点
优点
符合单一职责每个工厂只负责生产对应的产品符合开闭原则添加产品只需添加对应的产品类和工厂类使用者只需要知道产品抽象类不需要关心其它实现类。满足迪米特法则、依赖倒置原则和里氏替换原则
缺点
添加一个产品需要实现对应的工厂类和产品类每个产品需要有对应的产品类和工厂类
代码示例
产品抽象接口
/*** 支付类*/
public interface Pay {/*** 统一下单*/void unifiedorder();
}抽象工厂 /*** 抽象工厂*/
public interface IFactory {/*** 获取支付类* return*/Pay getPay();
}
产品具体实现类
public class AliPay implements Pay{Overridepublic void unifiedorder() {System.out.println(支付宝 支付统一下单);}
}public class WechatPay implements Pay{Overridepublic void unifiedorder() {System.out.println(微信 支付统一下单);}
}工厂具体实现类
/****/
public class AliFactory implements IFactory{/*** 获取支付类* return*/Overridepublic Pay getPay(){return new AliPay();}
}
/****/
public class WechatFactory implements IFactory{/*** 获取支付类* return*/Overridepublic Pay getPay(){return new WechatPay();}
}测试 public class AppRun {public static void main(String[] args) {IFactory iFactory new AliFactory();Pay pay iFactory.getPay();//获取支付pay.unifiedorder();}
}public class AppRun {public static void main(String[] args) {IFactory iFactory new WechatFactory();Pay pay iFactory.getPay();//获取支付pay.unifiedorder();}
}