宁陵县网站seo公众号授权网站
news/
2025/9/27 12:25:10/
文章来源:
宁陵县网站seo,公众号授权网站,建设实木餐桌椅移动网站,北京网站开发网络公司工厂模式#xff08;Factory Pattern#xff09;
定义#xff1a; 工厂模式是一种创建型设计模式#xff0c;它提供了一个创建对象的接口#xff0c;但由子类决定要实例化的类是哪一个。工厂方法使一个类的实例化延迟到其子类。
主要类型#xff1a;
简单工厂模式Factory Pattern
定义 工厂模式是一种创建型设计模式它提供了一个创建对象的接口但由子类决定要实例化的类是哪一个。工厂方法使一个类的实例化延迟到其子类。
主要类型
简单工厂模式Simple Factory Pattern 又叫静态工厂方法由一个工厂类根据传入的参数决定创建哪一种产品类的实例。工厂方法模式Factory Method Pattern 定义一个创建对象的接口但让子类决定实例化哪个类。抽象工厂模式Abstract Factory Pattern 提供一个接口用于创建相关或依赖对象的家族而不需要明确指定具体类。
优点
代码复用性高。隐藏了对象的创建细节。降低了代码的耦合性。
适用场景
需要创建的对象具有复杂的创建过程。客户端不需要知道实际创建的具体类。系统结构需要灵活地添加新产品。
示例代码
// 简单工厂模式示例
public class SimpleFactory {public static Product createProduct(String type) {if (type.equals(A)) {return new ProductA();} else if (type.equals(B)) {return new ProductB();}return null;}
}public interface Product {void use();
}public class ProductA implements Product {Overridepublic void use() {System.out.println(Using Product A);}
}public class ProductB implements Product {Overridepublic void use() {System.out.println(Using Product B);}
}适配器模式Adapter Pattern
定义 适配器模式是一种结构型设计模式它将一个类的接口转换成客户希望的另一个接口使得原本由于接口不兼容而不能一起工作的类可以一起工作。
优点
让两个不兼容的类能够合作。提高了类的复用性。灵活性高。
适用场景
系统需要使用现有的类而这些类的接口不符合系统的需求。需要创建一个可以复用的类能够与其他不相关或不可预见的类即这些类可能具有不兼容的接口协同工作。
示例代码
// 目标接口
public interface Target {void request();
}// 需要适配的类
public class Adaptee {public void specificRequest() {System.out.println(Specific request);}
}// 适配器类
public class Adapter implements Target {private Adaptee adaptee;public Adapter(Adaptee adaptee) {this.adaptee adaptee;}Overridepublic void request() {adaptee.specificRequest();}
}// 客户端代码
public class Client {public static void main(String[] args) {Adaptee adaptee new Adaptee();Target target new Adapter(adaptee);target.request();}
}何时使用工厂模式和适配器模式
工厂模式
当对象的创建逻辑复杂且需要集中管理时。当系统需要在不修改客户端代码的情况下引入新产品时。当客户端不关心具体产品类的创建过程时。
适配器模式
当现有类的接口与客户端要求的接口不兼容时。当需要使用现有的类但它的接口不符合需求时。当希望创建一个可以与其他不相关类或未来不可预见的类一起工作的可复用类时。
通过这些解释和代码示例希望能帮助你更好地理解工厂模式和适配器模式及其使用场景。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916601.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!