当前位置: 首页 > news >正文

网站排名优化培训wordpress手机显示不了图片

网站排名优化培训,wordpress手机显示不了图片,开发公众号平台,量体定制工厂模式和抽象工厂模式是创建型设计模式中的两种,主要用于对象的创建,并且通过将对象的创建过程封装起来,来实现代码的解耦和灵活性。下面通过具体实例来说明这两种模式的用法及其在解耦中的作用。 工厂模式(Factory Method Pat…

工厂模式和抽象工厂模式是创建型设计模式中的两种,主要用于对象的创建,并且通过将对象的创建过程封装起来,来实现代码的解耦和灵活性。下面通过具体实例来说明这两种模式的用法及其在解耦中的作用。

工厂模式(Factory Method Pattern)

工厂模式通过定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

实例说明

假设我们有一个交通工具接口 Vehicle 以及具体实现类 CarBike。我们通过工厂模式来创建这些交通工具对象。

接口和实现类

// Vehicle.java
public interface Vehicle {void drive();
}// Car.java
public class Car implements Vehicle {@Overridepublic void drive() {System.out.println("Driving a car.");}
}// Bike.java
public class Bike implements Vehicle {@Overridepublic void drive() {System.out.println("Riding a bike.");}

工厂类

// VehicleFactory.java
public abstract class VehicleFactory {public abstract Vehicle createVehicle();
}// CarFactory.java
public class CarFactory extends VehicleFactory {@Overridepublic Vehicle createVehicle() {return new Car();}
}// BikeFactory.java
public class BikeFactory extends VehicleFactory {@Overridepublic Vehicle createVehicle() {return new Bike();}

使用工厂模式

public class Main {public static void main(String[] args) {VehicleFactory carFactory = new CarFactory();Vehicle car = carFactory.createVehicle();car.drive(); // 输出: Driving a car.VehicleFactory bikeFactory = new BikeFactory();Vehicle bike = bikeFactory.createVehicle();bike.drive(); // 输出: Riding a bike.}
}
解耦作用

通过工厂模式,Main 类不需要知道具体的交通工具类,只需要知道工厂类和接口 Vehicle。这使得代码更加灵活,增加了新类型的交通工具时不需要修改现有代码。

抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

实例说明

假设我们有一个家具工厂,可以创建椅子和沙发。我们通过抽象工厂模式来实现。

接口和实现类

// Chair.java
public interface Chair {void sitOn();
}// Sofa.java
public interface Sofa {void lieOn();
}// VictorianChair.java
public class VictorianChair implements Chair {@Overridepublic void sitOn() {System.out.println("Sitting on a Victorian chair.");}
}// ModernChair.java
public class ModernChair implements Chair {@Overridepublic void sitOn() {System.out.println("Sitting on a modern chair.");}
}// VictorianSofa.java
public class VictorianSofa implements Sofa {@Overridepublic void lieOn() {System.out.println("Lying on a Victorian sofa.");}
}// ModernSofa.java
public class ModernSofa implements Sofa {@Overridepublic void lieOn() {System.out.println("Lying on a modern sofa.");}

抽象工厂类和具体工厂类

// FurnitureFactory.java
public interface FurnitureFactory {Chair createChair();Sofa createSofa();
}// VictorianFurnitureFactory.java
public class VictorianFurnitureFactory implements FurnitureFactory {@Overridepublic Chair createChair() {return new VictorianChair();}@Overridepublic Sofa createSofa() {return new VictorianSofa();}
}// ModernFurnitureFactory.java
public class ModernFurnitureFactory implements FurnitureFactory {@Overridepublic Chair createChair() {return new ModernChair();}@Overridepublic Sofa createSofa() {return new ModernSofa();}
}

使用抽象工厂模式

public class Main {public static void main(String[] args) {FurnitureFactory victorianFactory = new VictorianFurnitureFactory();Chair victorianChair = victorianFactory.createChair();Sofa victorianSofa = victorianFactory.createSofa();victorianChair.sitOn(); // 输出: Sitting on a Victorian chair.victorianSofa.lieOn();  // 输出: Lying on a Victorian sofa.FurnitureFactory modernFactory = new ModernFurnitureFactory();Chair modernChair = modernFactory.createChair();Sofa modernSofa = modernFactory.createSofa();modernChair.sitOn(); // 输出: Sitting on a modern chair.modernSofa.lieOn();  // 输出: Lying on a modern sofa.}
}
解耦作用

抽象工厂模式通过将具体工厂类与产品对象的创建过程分离,使得客户端代码仅依赖于工厂接口和产品接口。这样,增加新的家具风格时,只需添加新的具体工厂类和产品类,不需要修改现有代码。这种方式大大提高了系统的扩展性和可维护性。

总结

  1. 工厂模式通过定义一个创建对象的接口,使得具体类的实例化过程延迟到子类,从而实现了创建对象的灵活性和代码的解耦。
  2. 抽象工厂模式则进一步扩展,通过提供一个创建一系列相关或相互依赖对象的接口,使得产品族的创建过程独立于客户端代码,极大地提高了系统的可扩展性和可维护性。

两种模式都通过将对象的创建过程封装起来,实现了代码的解耦,使得系统更加灵活、易于扩展和维护。

http://www.yayakq.cn/news/894547/

相关文章:

  • 做网站 学php哪一部分代理小程序怎么赚钱
  • 东莞设计兼职网站建设wordpress 标签云修改
  • 西宁做网站君博领先汽车租赁网站设计
  • 常州网站制作计划网站开发测量像素工具
  • 网站开发数据流程图怎么画网上注册公司流程及步骤
  • 表白网站怎么做南安市住房和城乡建设局网站
  • 有什么网站做微商wordpress说说插件
  • 泊头市有做网站的吗wordpress js 调用图片
  • 门户网站建设目标seo岗位工资
  • 内蒙古建设厅网站首页seo是付费还是免费推广
  • 网站建设 天津西安市seo排名按天优化
  • 什么网站做ppt赚钱wordpress第一篇文章id
  • 有没有找客户的网站网站建设咨询有客诚信
  • 企业建站有什么好处全国定制网站服务器云主机
  • 泰安最好的网站建设公司湖南微网站开发
  • 全屏网站公司网页制作培训试题
  • 高校文明建设网站十大景观设计网站
  • wordpress自定义的注册页面模板自己的网站怎样做优化
  • 南通网站建设方案书买衣服app排行榜前十名
  • 做门户网站有前途吗网站客户续费
  • 什么是营销网站不建立网站建设的利弊
  • 深圳福田高端网站建设开发公司合理化建议
  • dede网站 设置404 错误页面利用h5网站做app
  • 做金融看哪些网站有哪些内容做深度的互联网站
  • 手机网站 开发者模式网站建设柒金手指花总12
  • html个人网站模板企业站用什么程序做网站
  • 平凉市建设厅官方网站牙膏的网站建设方案
  • 做的不错的h5高端网站Wordpress搜索结果页插件
  • 山西城乡和建设厅网站做汽配的外贸网站
  • 杭州杭州网站建设网站建设设计文档模板下载