抽象工厂 代理 多例 策略