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

京东商城网上购物京东超市廊坊seo排名扣费

京东商城网上购物京东超市,廊坊seo排名扣费,域名链接网站,网站关键词快速优化工厂设计模式-工厂方法 1.概念 工厂方法模式(Fatory Method Pattern ) 是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。 在工厂方法模式中用户只需要关心所需产品对应的工厂,…

工厂设计模式-工厂方法

1.概念

工厂方法模式(Fatory Method Pattern ) 是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类工厂方法让类的实例化推迟到子类中进行。

在工厂方法模式中用户只需要关心所需产品对应的工厂,无须关心创建细节。

2.案例说明和分析

2.1 定义一个创建对象的接口

public interface ICourse {void record(); //录制抽象功能
}
public class JavaCourse implements ICourse {public void record() {System.out.println("录制Java课程");}
}
public class PythonCourse implements ICourse {public void record() {System.out.println("录制Python课程");}
}/** 工厂模型 */
public interface ICourseFactory {ICourse create();
}

2.2 定义接口和实现类

public class JavaCourseFactory implements ICourseFactory {public ICourse create() {return new JavaCourse();}
}
public class PythonCourseFactory implements ICourseFactory {public ICourse create() {return new PythonCourse();}
}

2.3实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。

public class FactoryMethodTest {public static void main(String[] args) {ICourseFactory factory = new PythonCourseFactory();ICourse course = factory.create();course.record();factory = new JavaCourseFactory();course = factory.create();course.record();}
}

2.4 类图

在这里插入图片描述

3.总结

使用步骤:

创建一个接口A(实现抽象接口功能名write() )和实现类AImpl(实现逻辑代码:writ(){…})。

在创建创建一个接口工厂B(实现抽象功能返回接口A对象: creatA();)和实现类BImpl(实现逻辑返回AImpl实现类对象:createA(){ return new AImpl();})。

创建一个调用类 -> B b = new BImpl(); A a = b.createA(); a.write();

代码实现:

public interface A {void write(); 
}
//业务实现逻辑
public class AImpl implements A {public void write() {//不依赖于产品类实例如何被创建、实现等细节 System.out.println("写Java作业");}
}//-------------------------------
public interface B {A createA();
}
public class BImpl implements B {public A createA() {//创建对象需要大量重复的代码return new AImpl(); //一个类通过其子类来指定创建哪个对象;}
}B b = new BImpl();
A a = b.createA();
a.write();

为什么要使用工厂方法了啊?解决什么问题。

  1. 创建对象需要大量重复的代码;
  2. 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 ;
  3. 一个类通过其子类来指定创建哪个对象;

工厂方法也有缺点

  1. 类的个数容易过多,增加复杂度
  2. 增加了系统的抽象性和理解难度

工厂设计模式-抽象工厂

1.案例说明和分析

//步骤1:创建接口和实现类
public interface ICourse {/* 录制视频 */void record();
}
public class JavaCourse implements ICourse {public void record() {System.out.println("录制Java课程");}
}
//多个....// 步骤2: 创建抽象工厂类,并创建抽象方法返回实现类对象(接口对象)
public abstract class CourseFactory {public void init(){System.out.println("初始化基础数据");}protected abstract ICourse createCourse();//(都属于同一组的产品(小米空调,小米电视,小米手机)之间有一些联系) 多个....
}//步骤3:继承抽象类工厂并实现抽象方法(创建实现类并返回)
public class JavaCourseFactory extends CourseFactory {public ICourse createCourse() {super.init();return new JavaCourse();}
}
//多个....// 步骤4:创建继承抽象类的实例对象,并调用实现类中的业务逻辑方法
public class AbstractFactoryTest {public static void main(String[] args) {//一起使用创建对象需要大量重复的代码,这里就解决了。CourseFactory factory = new JavaCourseFactory();factory.createCourse().record();//多个...}
}

2.类图

在这里插入图片描述

3.总结

3.1 创建步骤:

  • 步骤1:创建接口和实现类
  • 步骤2: 创建抽象工厂类,并创建抽象方法返回实现类对象(接口对象)
  • 步骤3:继承抽象类工厂并实现抽象方法(创建实现类并返回)
  • 步骤4:创建继承抽象类的实例对象,并调用实现类中的业务逻辑方法

3.2 使用理解

强调的是系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码。

同一产品结构下还有格力热水器,格力空调,格力洗衣机。

在这里插入图片描述

在这里插入图片描述

3.3使用场景

如需要创建小米品牌一组家电(电视,空调,电饭锅等等)的对象,一个一个创建代码过多而且创建过程过程复杂,这时可以用抽象工厂方法封装一起来,调用就会变得简单。

如果创建多种品牌家电,每种品牌等级和价格不同,这时候就使用抽象工厂方法封装,传入什么参数调用什么等级家电产品,返回一组家电对象

参考:
https://refactoringguru.cn/design-patterns/factory-method
https://www.yuque.com/huangjinshidai-1wt9t/ocmvo8/zr4ypvhosvzzmh24?singleDoc#

http://www.hkea.cn/news/716998/

相关文章:

  • 深圳南山做网站的公司百度投诉中心
  • 辽宁建设工程信息网业绩认定武汉网站优化公司
  • 莱芜都市人才网上海网站seo公司
  • 广州做鞋的网站怎么让某个关键词排名上去
  • 温州平阳县网站建设兼职东莞网络推广哪家公司奿
  • 做单页网站价格微信朋友圈广告在哪里做
  • 濮阳家电网站建设一般开车用什么导航最好
  • html5 图片展示网站大作设计网站
  • 河北正规网站建设比较百度一下你就知道官页
  • 企业网站建设哪家服务好福州网站关键词推广
  • 惠州悦商做网站软件开发一般需要多少钱
  • 做衣服外单网站优化大师官方正版下载
  • 专门做酒店的网站百度排行
  • 上海做手机网站建设盐城网站优化
  • html论坛模板东营seo整站优化
  • 天津网站建设582345网址导航桌面版
  • 东莞纸箱厂东莞网站建设经典模板网站建设
  • 贺州同城购物网站建设中国网站排名100
  • 黄骅港旅游景点爱站网seo工具包
  • 网站 图文混编提高网站搜索排名
  • 北京怀柔网站制作教育机构
  • 网站建设费 大创友链交换平台
  • o2o商城网站系统开发微信群拉人的营销方法
  • 帝国cms做淘宝客网站网页设计用什么软件
  • 营销型网站建设的优缺点视频优化软件
  • 珠海响应式网站建设推广公司网络营销发展方案策划书
  • 中国人自己的空间站每日英语新闻
  • 教师可以做网站吗seo常用工具包括
  • 武山建设局网站什么是seo
  • 做文案需要用到的网站全网模板建站系统