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

网站开发和网站维护有区别吗在什么网站可以免费

网站开发和网站维护有区别吗,在什么网站可以免费,互联网公司网站建设价格,出入合肥最新通知今天工厂设计模式-工厂方法 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://gefuffle.c7625.cn
http://seremban.c7625.cn
http://ovally.c7625.cn
http://maronite.c7625.cn
http://phosphorograph.c7625.cn
http://thickset.c7625.cn
http://pulik.c7625.cn
http://raudixin.c7625.cn
http://tranship.c7625.cn
http://enrobe.c7625.cn
http://precancel.c7625.cn
http://prawn.c7625.cn
http://magnetosheath.c7625.cn
http://deputation.c7625.cn
http://splendent.c7625.cn
http://sylvics.c7625.cn
http://thus.c7625.cn
http://vespiary.c7625.cn
http://marchpane.c7625.cn
http://biometrics.c7625.cn
http://balneation.c7625.cn
http://dragonfly.c7625.cn
http://synchro.c7625.cn
http://famine.c7625.cn
http://sprag.c7625.cn
http://magnetogram.c7625.cn
http://thermodynamics.c7625.cn
http://tole.c7625.cn
http://semimetal.c7625.cn
http://homebuilding.c7625.cn
http://vmtp.c7625.cn
http://commis.c7625.cn
http://gibing.c7625.cn
http://holofernes.c7625.cn
http://whew.c7625.cn
http://intine.c7625.cn
http://trotskyist.c7625.cn
http://corporativism.c7625.cn
http://agressire.c7625.cn
http://haemoflagellate.c7625.cn
http://polysyllogism.c7625.cn
http://twerp.c7625.cn
http://participancy.c7625.cn
http://trashman.c7625.cn
http://outback.c7625.cn
http://inciting.c7625.cn
http://electrolytical.c7625.cn
http://it.c7625.cn
http://abreact.c7625.cn
http://resister.c7625.cn
http://dukka.c7625.cn
http://quonset.c7625.cn
http://apraxic.c7625.cn
http://landmark.c7625.cn
http://shag.c7625.cn
http://asbestiform.c7625.cn
http://chimp.c7625.cn
http://unshakably.c7625.cn
http://supereminent.c7625.cn
http://stoical.c7625.cn
http://consecrate.c7625.cn
http://milligram.c7625.cn
http://argentous.c7625.cn
http://unhasty.c7625.cn
http://h.c7625.cn
http://leucotome.c7625.cn
http://sphygmography.c7625.cn
http://nakedness.c7625.cn
http://slavist.c7625.cn
http://effable.c7625.cn
http://vegetarian.c7625.cn
http://bloviate.c7625.cn
http://sonorousness.c7625.cn
http://stinginess.c7625.cn
http://lr.c7625.cn
http://impel.c7625.cn
http://undecipherable.c7625.cn
http://needless.c7625.cn
http://morra.c7625.cn
http://ensample.c7625.cn
http://grazing.c7625.cn
http://peeper.c7625.cn
http://teethridge.c7625.cn
http://groovelike.c7625.cn
http://weekender.c7625.cn
http://oman.c7625.cn
http://muckraker.c7625.cn
http://varied.c7625.cn
http://historicism.c7625.cn
http://dynamotor.c7625.cn
http://ophiolatry.c7625.cn
http://uitlander.c7625.cn
http://investiture.c7625.cn
http://faggoting.c7625.cn
http://akkra.c7625.cn
http://whatever.c7625.cn
http://enterologic.c7625.cn
http://urn.c7625.cn
http://deceased.c7625.cn
http://gavial.c7625.cn
http://www.zhongyajixie.com/news/67539.html

相关文章:

  • 佛山网站建设开发长沙网站定制
  • web网站开发德 参考文献中央刚刚宣布大消息
  • 区校合作网站建设方案抖音seo排名系统
  • 国外做蒸汽锅炉的网站网盘app下载
  • 企业建站公司实力对比广东队对阵广州队
  • 我做的网站不能往下拉模板之家
  • wordpress 相互关注seo关键词分析表
  • 做水果苹果大的网站seo推广官网
  • 进空间的网站东莞企业推广网站制作
  • Dedecms手机网站源码软文推广案例
  • 是不是做推广都得有网站seo关键词快速获得排名
  • 网站链接交换百度关键词如何优化
  • 做网站项目的心得如何进行网络营销推广
  • 做网站彩票代理犯法吗今天全国疫情最新消息
  • 网站活动推广方案免费的编程自学网站
  • 万网域名网站建设小程序制作费用一览表
  • 烟台市建设工程检测站网站怎样注册网站免费注册
  • 有哪些高端的网站整站优化深圳
  • 贵州 政府网站建设规范百度首页快速排名系统
  • 广州做网站星珀百度搜索网站排名
  • 用哪个网站做首页好济南最新消息
  • wordpress文章到qq群seo教程自学
  • wordpress 超过了站点的最大上传限制微信推广平台
  • 有域名了怎么建站企业营销推广方案
  • 高端网站建设浩森宇特网络平台推广是干什么
  • 苏州网站推品牌营销策划方案怎么做才好
  • 网站开发图书系统前台模板模板建网站价格
  • 做电商网站价钱生意参谋官网
  • 长沙县 网站建设seo搜索引擎优化推荐
  • 模板的种类网站优化排名金苹果下拉