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

网页设计代码模板代码seo关键词查询

网页设计代码模板代码,seo关键词查询,在线设计平台源码,免费手机小说网站建设系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式,5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用…

系列文章目录

设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列
设计模式之-单列设计模式,5种单例设计模式使用场景以及它们的优缺点
设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用场景和优缺点。
设计模式之模板方法模式,通俗易懂快速理解,以及模板方法模式的使用场景
设计模式之-建造者模式通俗易懂理解,以及建造者模式的使用场景和示列代码
设计模式之-代理模式,快速掌握理解代理模式,以及代理模式的使用场景
设计模式之-原型模式,快速掌握原型模式,通俗易懂的理解原型模式以及使用场景
设计模式之-中介者模式,快速掌握中介者模式,通俗易懂的讲解中介者模式以及它的使用场景
设计模式之-责任链模式,快速掌握责任链模式,通俗易懂的讲解责任链模式以及它的使用场景
设计模式之-装饰模式,快速掌握装饰模式,通俗易懂的讲解装饰模式以及它的使用场景


文章目录

  • 系列文章目录
  • 前言
  • 一、3种模式的概念、使用场景和优缺点
    • 简单工厂模式(Simple Factory Pattern):
    • 工厂方法模式(Factory Method Pattern):
    • 抽象工厂模式(Abstract Factory Pattern):
  • 二、3种工厂模式的代码示例
    • 简单工厂模式:
    • 工厂方法模式:
    • 抽象工厂模式:


前言

当谈到工厂模式时,通常指的是三种常见的工厂模式:简单工厂模式、工厂方法模式和抽象工厂模式。下面我将详细讲解每一种模式的概念、使用场景和优缺点。

一、3种模式的概念、使用场景和优缺点

简单工厂模式(Simple Factory Pattern):

概念:简单工厂模式通过一个工厂类来创建不同类型的对象,客户端只需要知道所需对象的类型即可。
使用场景:当对象的创建逻辑相对简单且不需要频繁修改时,可以使用简单工厂模式。
优点:客户端代码与具体产品解耦,易于扩展和维护。
缺点:违反了开闭原则,新增产品需要修改工厂类的代码,不符合开放封闭原则。

工厂方法模式(Factory Method Pattern):

概念:工厂方法模式将对象的创建延迟到子类中,由子类决定具体创建哪个对象。
使用场景:当需要创建一组相关或相互依赖的对象时,可以使用工厂方法模式。
优点:符合开闭原则,新增产品只需要添加相应的工厂类,不需要修改现有代码。
缺点:增加了系统的复杂度,每个产品都需要一个对应的工厂类。

抽象工厂模式(Abstract Factory Pattern):

概念:抽象工厂模式提供一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定具体的类。
使用场景:当需要创建一组相关对象的产品族时,可以使用抽象工厂模式。
优点:符合开闭原则,新增产品族只需要添加相应的具体工厂类,不需要修改现有代码。
缺点:增加了系统的复杂度,每个产品族都需要一个对应的具体工厂类。

二、3种工厂模式的代码示例

简单工厂模式:

// 产品接口
interface Product {void operation();
}// 具体产品A
class ConcreteProductA implements Product {@Overridepublic void operation() {System.out.println("ConcreteProductA operation");}
}// 具体产品B
class ConcreteProductB implements Product {@Overridepublic void operation() {System.out.println("ConcreteProductB operation");}
}// 简单工厂类
class SimpleFactory {public static Product createProduct(String type) {if (type.equals("A")) {return new ConcreteProductA();} else if (type.equals("B")) {return new ConcreteProductB();}return null;}
}// 客户端代码
public class Main {public static void main(String[] args) {Product productA = SimpleFactory.createProduct("A");productA.operation();Product productB = SimpleFactory.createProduct("B");productB.operation();}
}

工厂方法模式:

// 产品接口
interface Product {void operation();
}// 具体产品A
class ConcreteProductA implements Product {@Overridepublic void operation() {System.out.println("ConcreteProductA operation");}
}// 具体产品B
class ConcreteProductB implements Product {@Overridepublic void operation() {System.out.println("ConcreteProductB operation");}
}// 工厂接口
interface Factory {Product createProduct();
}// 具体工厂A
class ConcreteFactoryA implements Factory {@Overridepublic Product createProduct() {return new ConcreteProductA();}
}// 具体工厂B
class ConcreteFactoryB implements Factory {@Overridepublic Product createProduct() {return new ConcreteProductB();}
}// 客户端代码
public class Main {public static void main(String[] args) {Factory factoryA = new ConcreteFactoryA();Product productA = factoryA.createProduct();productA.operation();Factory factoryB = new ConcreteFactoryB();Product productB = factoryB.createProduct();productB.operation();}
}

抽象工厂模式:

// 产品接口A
interface ProductA {void operation();
}// 具体产品A1
class ConcreteProductA1 implements ProductA {@Overridepublic void operation() {System.out.println("ConcreteProductA1 operation");}
}// 具体产品A2
class ConcreteProductA2 implements ProductA {@Overridepublic void operation() {System.out.println("ConcreteProductA2 operation");}
}// 产品接口B
interface ProductB {void operation();
}// 具体产品B1
class ConcreteProductB1 implements ProductB {@Overridepublic void operation() {System.out.println("ConcreteProductB1 operation");}
}// 具体产品B2
class ConcreteProductB2 implements ProductB {@Overridepublic void operation() {System.out.println("ConcreteProductB2 operation");}
}// 抽象工厂接口
interface AbstractFactory {ProductA createProductA();ProductB createProductB();
}// 具体工厂1
class ConcreteFactory1 implements AbstractFactory {@Overridepublic ProductA createProductA() {return new ConcreteProductA1();}@Overridepublic ProductB createProductB() {return new ConcreteProductB1();}
}// 具体工厂2
class ConcreteFactory2 implements AbstractFactory {@Overridepublic ProductA createProductA() {return new ConcreteProductA2();}@Overridepublic ProductB createProductB() {return new ConcreteProductB2();}
}// 客户端代码
public class Main {public static void main(String[] args) {AbstractFactory factory1 = new ConcreteFactory1();ProductA productA1 = factory1.createProductA();ProductB productB1 = factory1.createProductB();productA1.operation();productB1.operation();AbstractFactory factory2 = new ConcreteFactory2();ProductA productA2 = factory2.createProductA();ProductB productB2 = factory2.createProductB();productA2.operation();productB2.operation();}
}
http://www.hotlads.com/news/2254.html

相关文章:

  • 网站后台管理进不去了广州最新新闻
  • 网站注册域名位置我们公司在做网站推广
  • 网站解析是什么意思seo黑帽教程视频
  • tk域名站长工具 seo综合查询
  • 阿里巴巴网站的搜索引擎优化案例微信营销的方法和技巧
  • 泰州网站建设公司网站新站整站排名
  • 免费在线做高考试题的网站网站排名前十
  • 经典网站首页企业网络营销推广方案策划
  • 做甜品台的网站网站推广途径和要点
  • 欧米茄女士手表网站搜索推广营销
  • 免费做网站bz3399百度指数免费添加
  • 网站建设各单位强化沟通协作营销网站建设价格
  • 用dw做网站的空格怎么打seo网站推广软件
  • 利用网站做淘宝客sem网站推广怎么做
  • wordpress 列表页长沙seo霜天
  • 广州珠吉网站建设优秀企业网站模板
  • 如何做品牌网站设计sem是什么显微镜
  • 为赌博网站做宣传厦门seo公司到1火星
  • wordpress 压缩网站锦州网站seo
  • 做企业网站需要准备什么材料百度词条优化
  • 常见的网站建设技术计算机培训班
  • 网站做任务挣钱长春seo排名
  • 焦作市建设委员会网站网站页面优化内容包括哪些
  • 如何免费自做企业网站今日头条官网
  • WordPress手机端底部悬浮窗电商seo
  • 优惠的网站快排公司电话培训网站设计
  • 网站网址黄页大全免费游戏加盟
  • 赤峰网站建设企业肇庆百度快速排名
  • 做网站卖别人的软件可以吗浏览器如何推广自己网站
  • 在招聘网站做电话销售怎么样sem是什么方法