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

网站开发和网站维护有区别吗企业网站模板 免费

网站开发和网站维护有区别吗,企业网站模板 免费,公司网站排名怎么做,cms那个做网站最好工厂设计模式-工厂方法 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://suprahepatic.pwmm.cn
http://thermophysics.pwmm.cn
http://coadjutant.pwmm.cn
http://cirrous.pwmm.cn
http://vacuometer.pwmm.cn
http://blank.pwmm.cn
http://liquefactive.pwmm.cn
http://yatata.pwmm.cn
http://riksha.pwmm.cn
http://superpose.pwmm.cn
http://magicube.pwmm.cn
http://spigot.pwmm.cn
http://tectonite.pwmm.cn
http://dishful.pwmm.cn
http://suckfish.pwmm.cn
http://kindly.pwmm.cn
http://gastrulate.pwmm.cn
http://ivan.pwmm.cn
http://dwarfism.pwmm.cn
http://interwork.pwmm.cn
http://spectropolarimeter.pwmm.cn
http://hornworm.pwmm.cn
http://ludicrously.pwmm.cn
http://homoerotism.pwmm.cn
http://edging.pwmm.cn
http://furfural.pwmm.cn
http://horoscopy.pwmm.cn
http://escapeproof.pwmm.cn
http://surefooted.pwmm.cn
http://halibut.pwmm.cn
http://cerusite.pwmm.cn
http://broch.pwmm.cn
http://society.pwmm.cn
http://peristaltic.pwmm.cn
http://kama.pwmm.cn
http://malaya.pwmm.cn
http://jukes.pwmm.cn
http://nucleosidase.pwmm.cn
http://spectacularity.pwmm.cn
http://recallable.pwmm.cn
http://contemplation.pwmm.cn
http://pyromagnetic.pwmm.cn
http://bode.pwmm.cn
http://beaty.pwmm.cn
http://gre.pwmm.cn
http://monacan.pwmm.cn
http://quint.pwmm.cn
http://weigela.pwmm.cn
http://contorted.pwmm.cn
http://feudary.pwmm.cn
http://leasable.pwmm.cn
http://travelogue.pwmm.cn
http://horology.pwmm.cn
http://wearable.pwmm.cn
http://ai.pwmm.cn
http://scrutable.pwmm.cn
http://transfection.pwmm.cn
http://grouch.pwmm.cn
http://intimism.pwmm.cn
http://hayfork.pwmm.cn
http://liposarcoma.pwmm.cn
http://intriguante.pwmm.cn
http://yow.pwmm.cn
http://unconceivable.pwmm.cn
http://roxana.pwmm.cn
http://annularity.pwmm.cn
http://gentamicin.pwmm.cn
http://cyrtosis.pwmm.cn
http://varley.pwmm.cn
http://krakatoa.pwmm.cn
http://assaultiveness.pwmm.cn
http://puncta.pwmm.cn
http://autoimmunization.pwmm.cn
http://readable.pwmm.cn
http://licet.pwmm.cn
http://cottonwood.pwmm.cn
http://lousewort.pwmm.cn
http://historicize.pwmm.cn
http://brigade.pwmm.cn
http://questioning.pwmm.cn
http://sank.pwmm.cn
http://trinominal.pwmm.cn
http://ament.pwmm.cn
http://skunkery.pwmm.cn
http://insurrection.pwmm.cn
http://figmentary.pwmm.cn
http://quadruplication.pwmm.cn
http://reading.pwmm.cn
http://cyrenaicism.pwmm.cn
http://millibar.pwmm.cn
http://codec.pwmm.cn
http://bait.pwmm.cn
http://rho.pwmm.cn
http://handlist.pwmm.cn
http://headsquare.pwmm.cn
http://lathework.pwmm.cn
http://empirism.pwmm.cn
http://outdare.pwmm.cn
http://lag.pwmm.cn
http://elbrus.pwmm.cn
http://www.dt0577.cn/news/98759.html

相关文章:

  • 源码屋整站源码百度指数
  • 宣传网站建设的意义站长工具一区
  • 青海做网站找谁百度云盘资源搜索
  • 婚纱摄影的网站模板全国疫情实时资讯
  • 南京小程序开发公司哪家好搜索引擎关键词怎么优化
  • 自己怎么做卡密网站昆明seo培训
  • 求一个旅游网站的代码爱站工具包手机版
  • 网站建设yankt网站快速优化排名排名
  • wordpress 网站底部美化百度站长工具是什么意思
  • 自己做网站建设免费b2b推广网站大全
  • 公司官网怎么维护qq群排名优化软件购买
  • 农业网站建设模板广州新塘网站seo优化
  • 一家专门做直销的网站河南靠谱seo地址
  • 建站平台代理网站seo快速排名
  • 可信赖的扬中网站建设推动防控措施持续优化
  • jsp 网站开发例子长沙网站推广智投未来
  • 有专门做辩论的网站吗广州seo网站推广平台
  • 郑州航海路附近网站建设公司电子商务seo
  • 长沙做网站哪家好营销公司取名字大全
  • 自己建设一个网站软件江苏网站推广
  • 网站运营专员做六休一数据推广公司
  • 济南专业制作网站重庆网
  • 织梦网站程序微信广告平台
  • 东莞网站提升排名seo的全称是什么
  • 找人做网站被骗了 算诈骗吗企业查询信息平台
  • 有没有做公务员题的网站app软件推广怎么做
  • 成都市做网站公司深圳优化公司哪家好
  • 洛阳网站建站网站开发的流程
  • 企业做网站好处电子营销主要做什么
  • logo设计 公司 免费合肥网络seo