考虑一个有工厂方法的协议(protocol):publicprotocolFrobnicator{funcfrobnicate()staticfuncmakeRightFrobnicator()->Frobnicator}privateclassSomeFrobnicatorImplementation:Frobnicator{...}privateclassAnotherFrobnicatorImplementation:Frobnicator{...}publicextensionFrobnicator{staticfuncmakeRightFrobnicator()->Frobn