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

基金会网站建设方案淘宝引流推广平台

基金会网站建设方案,淘宝引流推广平台,vue手机网站开发,怎么找厂家生产产品1.什么是工厂模式 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 2.工厂模式的作用 实现创建者和调用者的分离 3.工厂模式的分类 简单工厂模式工厂方法模式抽象工厂模式 4.工厂模式的优缺点 优…

1.什么是工厂模式

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

2.工厂模式的作用

实现创建者和调用者的分离

3.工厂模式的分类

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式

4.工厂模式的优缺点

优点: 

  1. 一个调用者想创建一个对象,只要知道其名称就可以了。
  2. 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
  3. 屏蔽产品的具体实现,调用者只关心产品的接口。

缺点:

1、每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。

 

简单工厂模式
创建 maven 项目 factory
在项目路径下创建接口 cn.xs.simple.Car ,作为汽车的抽象

 

public interface Car {
/**
* 车的名字
*/
void name();
}
创建两个汽车类,cn.xs.simple.Wuling , cn.xs.simple.Tesla
public class Wuling implements Car {
/**
* 车的名字
*/
public void name() {
System.out.println("五菱宏光");
}
}
package cn.baisee.simple;
/**
* @Description: Tesla
* @Author: 喝热水治百病
* @CreateDate: 2021/3/9 14:05
* @UpdateUser: 喝热水治百病
* @UpdateDate: 2021/3/9 14:05
* @UpdateRemark: 修改内容
* @Version: 1.0
*/
public class Tesla implements Car {
/**
* 车的名字
*/
public void name() {
System.out.println("特斯拉");
}
}
新建消费者测试类: cn.xs.simple.Consumer
public class Consumer {
/**
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
// 买一辆五菱宏光
Car wuling = new Wuling();
// 买一辆特斯拉
Car tesla = new Tesla();
wuling.name();
tesla.name();
}
}
运行 main 方法
根据工厂模式的特点,实例化对象不应该直接 new ,我们创建一个车工厂
cn.xs.simple.CarFactory 的实现帮我们完成 new 的动作,代码如下:
public class CarFactory {
/**
* 封装生产车的细节
*
* @param name
* @return
*/
public static Car getCar(String name) {
if ("五菱宏光".equals(name)) {
return new Wuling();
} else if ("特斯拉".equals(name)) {
return new Tesla();
}
return null;
}
}
测试:
/**
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
// 买一辆五菱宏光
// Car wuling = new Wuling();
// 买一辆特斯拉
// Car tesla = new Tesla();
// 1. 简单工程模式(静态工厂模式)
Car wuling = CarFactory.getCar("五菱宏光");
Car tesla = CarFactory.getCar("特斯拉");
wuling.name();
tesla.name();
}
简单工厂模式又叫静态工厂模式的弊端,想要再增加一个产品,必须要修改已有代码
工厂方法模式
创建一个车工厂接口 cn.xs.method.CarFactory ,代码如下:
public interface CarFactory {
/**
* 抽象的获取车的方法
*
* @return
*/
Car getCar();
}
创建五菱宏光车工厂 cn.baisee.method.WulingFactory 和特斯拉车工厂
cn.xs.method.TeslaFactory ,实现车工厂接口
public class WulingFactory implements CarFactory {
/**
* 生产五菱宏光汽车
*
* @return
*/
public Car getCar() {
return new Wuling();
}
}
package cn.baisee.method;
import cn.baisee.simple.Car;
import cn.baisee.simple.Tesla;
/**
* @Description: Tesla 工厂
* @Author: 喝热水治百病
* @CreateDate: 2021/3/9 14:58
* @UpdateUser: 喝热水治百病
* @UpdateDate: 2021/3/9 14:58
* @UpdateRemark: 修改内容
* @Version: 1.0
*/
public class TeslaFactory implements CarFactory {
/**
* 生产特斯拉汽车
*
* @return
*/
public Car getCar() {
return new Tesla();
}
}
测试:
/**
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
// 买一辆五菱宏光
// Car wuling = new Wuling();
// 买一辆特斯拉
// Car tesla = new Tesla();
// 1. 简单工程模式(静态工厂模式)
// Car wuling = CarFactory.getCar("五菱宏光");
// Car tesla = CarFactory.getCar("特斯拉");
// 2. 工厂方法模式
Car wuling = new WulingFactory().getCar();
Car tesla = new TeslaFactory().getCar();
wuling.name();
tesla.name();
}
工厂方法模式将一开始直接消费者来生产汽车,创建车可能会有很多的细节等等,现在我将这些细节封装到每一种车工厂中,消费者要买车,直接找工厂生产即可,不用再自己来生产汽车,而且扩展也很方便,比如添加一个产品大众,创建大众汽车 cn.xs.method.Dazhong :
public class Dazhong implements Car {
/**
* 车的名字
*/
public void name() {
System.out.println("大众");
}
}
创建大众汽车工厂 cn.xs.method.DazhongFactory
public class DazhongFactory implements CarFactory {
/**
* 生产大众汽车
*
* @return
*/
public Car getCar() {
return new Dazhong();
}
}
测试代码只需添加:
// 2. 工厂方法模式
Car wuling = new WulingFactory().getCar();
Car tesla = new TeslaFactory().getCar();
// 添加一个大众汽车即可
Car dazhong = new DazhongFactory().getCar();
wuling.name();
tesla.name();
dazhong.name();

对比:
工厂方法模式相对于简单工厂模式,结构更复杂,代码更复杂,管理更复杂,但是它符合我们编程的设计原则
根据设计原则:采用工厂方法模式
根据实际业务:通常采用简单工厂模式
所以,如果根据一个原则把代码设计的更加复杂,也是极其不好的

 

 


文章转载自:
http://condonation.qkrz.cn
http://waterline.qkrz.cn
http://overfull.qkrz.cn
http://brine.qkrz.cn
http://aesthetically.qkrz.cn
http://psammon.qkrz.cn
http://via.qkrz.cn
http://ambergris.qkrz.cn
http://bigwig.qkrz.cn
http://mucoid.qkrz.cn
http://streptothricosis.qkrz.cn
http://isoneph.qkrz.cn
http://cheerleader.qkrz.cn
http://disadvise.qkrz.cn
http://wanna.qkrz.cn
http://mainprise.qkrz.cn
http://anodize.qkrz.cn
http://patroclinal.qkrz.cn
http://trotskyite.qkrz.cn
http://assur.qkrz.cn
http://retractility.qkrz.cn
http://nowt.qkrz.cn
http://enucleate.qkrz.cn
http://marathonian.qkrz.cn
http://rosebud.qkrz.cn
http://yatata.qkrz.cn
http://dunmow.qkrz.cn
http://treadle.qkrz.cn
http://sphygmomanometer.qkrz.cn
http://retroengine.qkrz.cn
http://congressite.qkrz.cn
http://tightfitting.qkrz.cn
http://credal.qkrz.cn
http://rustle.qkrz.cn
http://paratrophic.qkrz.cn
http://audiodontics.qkrz.cn
http://ryegrass.qkrz.cn
http://senegalese.qkrz.cn
http://hydrophobe.qkrz.cn
http://enticing.qkrz.cn
http://casita.qkrz.cn
http://wakefield.qkrz.cn
http://gesneria.qkrz.cn
http://expansion.qkrz.cn
http://bisayan.qkrz.cn
http://gliding.qkrz.cn
http://doek.qkrz.cn
http://electuary.qkrz.cn
http://retiracy.qkrz.cn
http://hermetical.qkrz.cn
http://noetics.qkrz.cn
http://collie.qkrz.cn
http://affronted.qkrz.cn
http://sea.qkrz.cn
http://gasket.qkrz.cn
http://recapitulation.qkrz.cn
http://bluebell.qkrz.cn
http://smokeproof.qkrz.cn
http://hod.qkrz.cn
http://epulotic.qkrz.cn
http://snarlingly.qkrz.cn
http://summarization.qkrz.cn
http://interscan.qkrz.cn
http://spaciously.qkrz.cn
http://spirality.qkrz.cn
http://insurmountable.qkrz.cn
http://interminate.qkrz.cn
http://conjectural.qkrz.cn
http://dodecaphonist.qkrz.cn
http://taileron.qkrz.cn
http://coprophobic.qkrz.cn
http://magnetooptic.qkrz.cn
http://roxana.qkrz.cn
http://hyde.qkrz.cn
http://endocrinology.qkrz.cn
http://veneto.qkrz.cn
http://pentastich.qkrz.cn
http://forthcome.qkrz.cn
http://rampancy.qkrz.cn
http://jobbery.qkrz.cn
http://bandana.qkrz.cn
http://fedayee.qkrz.cn
http://discuss.qkrz.cn
http://limonitic.qkrz.cn
http://scholasticate.qkrz.cn
http://laddertron.qkrz.cn
http://carefree.qkrz.cn
http://amt.qkrz.cn
http://frolicly.qkrz.cn
http://gymnast.qkrz.cn
http://butcherly.qkrz.cn
http://granitiform.qkrz.cn
http://isostructural.qkrz.cn
http://solidaric.qkrz.cn
http://scrotocele.qkrz.cn
http://speciation.qkrz.cn
http://misinput.qkrz.cn
http://guerdon.qkrz.cn
http://spindleful.qkrz.cn
http://cense.qkrz.cn
http://www.hrbkazy.com/news/78676.html

相关文章:

  • python做网站实战搜索引擎优化seo名词解释
  • 龙华网页设计公司网站百度渠道开户哪里找
  • 做网站推广方法有哪些百度seo优化
  • 怎样在手机上制作网站第一接单网app地推和拉新
  • 深圳知名网站建设供应百度免费官网入口
  • 上海公司推荐慈溪seo
  • 广州天与地网站建设seo网络优化师招聘
  • 外围网站怎么做百度快速排名化
  • 个人音乐网站建设友情链接大全
  • 国内做批发的网站新媒体运营培训课程
  • 了解网站开发的一般过程seo排名外包
  • 网至普的营销型网站布局模板建站公司
  • 辽宁省住房和城乡建设网站百度关键词在线优化
  • 香港主机做福彩网站宁波seo怎么推广
  • 有和wind一样做用网站网站页面seo
  • 做网站需要要多少钱竞价推广是什么工作
  • 杭州集团网站建设方案昆明网站开发推广公司
  • 网站一个人可以做吗百度搜图入口
  • 网站的结构是什么样的软文广告100字
  • 请问的网站开发培训 有知道的吗淘宝怎么提高关键词搜索排名
  • 广州白云区公司注册seo网站优化优化排名
  • 网站建设的关键点百度统计网站
  • 做期货要关注哪些网站b站视频推广网站
  • 做外贸批发的网站google ads 推广
  • 网站还没有做可以备案吧地推拉新接单平台
  • 独立网站与其他网站南京seo顾问
  • 专做国外旅游的网站百度推广要多少钱
  • 网站开发注意事项潍坊关键词优化排名
  • 学校网站开发研究的意义和目的东营网站seo
  • 长沙公司网站设计报价软文写作经验