###工厂模式:工厂类根据参数决定创建产品类的哪个实例。工厂类是包含专用于创建其他对象的方法的类。所谓按需分配,传入参数进行选择,返回具体类。工厂模式的主要作用是对对象创建的封装和对象创建操作的简化。简单的说就是调用工厂类的一个方法(传入参数)得到需要的类;工厂类的优势是整个模式的关键。它包含了必要的逻辑判断,根据外界给出的信息来决定应该创建哪一个。特定类的对象。通过使用工厂类,外界可以摆脱直接创建具体产品对象的尴尬局面,只需要负责“消费”对象即可。不管这些对象是如何创建的以及它们是如何组织的。明确了各自的责权利,有利于整个软件架构的优化。缺点由于工厂类集中了所有实例的创建逻辑,违反了高内聚职责分配原则,将所有创建逻辑集中到一个工厂类中;它能创建的类只能提前考虑,如果需要添加新的类,需要更改工厂类。当系统中特定产品类别的数量增加时,可能需要工厂类根据不同的情况创建不同的实例。条件的判断和具体产品类型的判断交织在一起,难以避免模块功能的扩散,非常不利于系统的维护和扩展;';}publicfunctiondel($username){//TODO:实现del()方法。}publicfunctionedit($username){//TODO:实施元素edit()方法。}}/***B公司*ClassCompany_B*/classCompany_BimplementsCompany{publicfunctionadd($username){echo$username.'isaddintoB';}publicfunctiondel($username){//TODO:实现del()方法。}publicfunctionedit($username){//TODO:实施edit()方法。}}/***C公司*ClassCompany_C*/classCompany_CimplementsCompany{publicfunctionadd($username){echo$username.'isaddintoC';}publicfunctiondel($username){//TODO:实现del()方法。}publicfunctionedit($username){//TODO:实施edit()方法。}}$type='A';$company=Factory::create_obj($type);$company->add('赵信');$type='B';$company=Factory::create_obj($type);$company->add('德玛');$type='C';$company=Factory::create_obj($type);$company->add('皇子');上面代码片段将会输出结果:
