工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

简易UML图

#mermaid-svg-xYh7SskwddKmdF7H .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-xYh7SskwddKmdF7H .label text{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .node rect,#mermaid-svg-xYh7SskwddKmdF7H .node circle,#mermaid-svg-xYh7SskwddKmdF7H .node ellipse,#mermaid-svg-xYh7SskwddKmdF7H .node polygon,#mermaid-svg-xYh7SskwddKmdF7H .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-xYh7SskwddKmdF7H .node .label{text-align:center;fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .node.clickable{cursor:pointer}#mermaid-svg-xYh7SskwddKmdF7H .arrowheadPath{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-xYh7SskwddKmdF7H .flowchart-link{stroke:#333;fill:none}#mermaid-svg-xYh7SskwddKmdF7H .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-xYh7SskwddKmdF7H .edgeLabel rect{opacity:0.9}#mermaid-svg-xYh7SskwddKmdF7H .edgeLabel span{color:#333}#mermaid-svg-xYh7SskwddKmdF7H .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-xYh7SskwddKmdF7H .cluster text{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-xYh7SskwddKmdF7H .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-xYh7SskwddKmdF7H text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-xYh7SskwddKmdF7H .actor-line{stroke:grey}#mermaid-svg-xYh7SskwddKmdF7H .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-xYh7SskwddKmdF7H .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-xYh7SskwddKmdF7H #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-xYh7SskwddKmdF7H .sequenceNumber{fill:#fff}#mermaid-svg-xYh7SskwddKmdF7H #sequencenumber{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H #crosshead path{fill:#333;stroke:#333}#mermaid-svg-xYh7SskwddKmdF7H .messageText{fill:#333;stroke:#333}#mermaid-svg-xYh7SskwddKmdF7H .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-xYh7SskwddKmdF7H .labelText,#mermaid-svg-xYh7SskwddKmdF7H .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-xYh7SskwddKmdF7H .loopText,#mermaid-svg-xYh7SskwddKmdF7H .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-xYh7SskwddKmdF7H .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-xYh7SskwddKmdF7H .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-xYh7SskwddKmdF7H .noteText,#mermaid-svg-xYh7SskwddKmdF7H .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-xYh7SskwddKmdF7H .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-xYh7SskwddKmdF7H .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-xYh7SskwddKmdF7H .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-xYh7SskwddKmdF7H .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .section{stroke:none;opacity:0.2}#mermaid-svg-xYh7SskwddKmdF7H .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-xYh7SskwddKmdF7H .section2{fill:#fff400}#mermaid-svg-xYh7SskwddKmdF7H .section1,#mermaid-svg-xYh7SskwddKmdF7H .section3{fill:#fff;opacity:0.2}#mermaid-svg-xYh7SskwddKmdF7H .sectionTitle0{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .sectionTitle1{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .sectionTitle2{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .sectionTitle3{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-xYh7SskwddKmdF7H .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .grid path{stroke-width:0}#mermaid-svg-xYh7SskwddKmdF7H .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-xYh7SskwddKmdF7H .task{stroke-width:2}#mermaid-svg-xYh7SskwddKmdF7H .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .taskText:not([font-size]){font-size:11px}#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-xYh7SskwddKmdF7H .task.clickable{cursor:pointer}#mermaid-svg-xYh7SskwddKmdF7H .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-xYh7SskwddKmdF7H .taskText0,#mermaid-svg-xYh7SskwddKmdF7H .taskText1,#mermaid-svg-xYh7SskwddKmdF7H .taskText2,#mermaid-svg-xYh7SskwddKmdF7H .taskText3{fill:#fff}#mermaid-svg-xYh7SskwddKmdF7H .task0,#mermaid-svg-xYh7SskwddKmdF7H .task1,#mermaid-svg-xYh7SskwddKmdF7H .task2,#mermaid-svg-xYh7SskwddKmdF7H .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutside0,#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutside2{fill:#000}#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutside1,#mermaid-svg-xYh7SskwddKmdF7H .taskTextOutside3{fill:#000}#mermaid-svg-xYh7SskwddKmdF7H .active0,#mermaid-svg-xYh7SskwddKmdF7H .active1,#mermaid-svg-xYh7SskwddKmdF7H .active2,#mermaid-svg-xYh7SskwddKmdF7H .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-xYh7SskwddKmdF7H .activeText0,#mermaid-svg-xYh7SskwddKmdF7H .activeText1,#mermaid-svg-xYh7SskwddKmdF7H .activeText2,#mermaid-svg-xYh7SskwddKmdF7H .activeText3{fill:#000 !important}#mermaid-svg-xYh7SskwddKmdF7H .done0,#mermaid-svg-xYh7SskwddKmdF7H .done1,#mermaid-svg-xYh7SskwddKmdF7H .done2,#mermaid-svg-xYh7SskwddKmdF7H .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-xYh7SskwddKmdF7H .doneText0,#mermaid-svg-xYh7SskwddKmdF7H .doneText1,#mermaid-svg-xYh7SskwddKmdF7H .doneText2,#mermaid-svg-xYh7SskwddKmdF7H .doneText3{fill:#000 !important}#mermaid-svg-xYh7SskwddKmdF7H .crit0,#mermaid-svg-xYh7SskwddKmdF7H .crit1,#mermaid-svg-xYh7SskwddKmdF7H .crit2,#mermaid-svg-xYh7SskwddKmdF7H .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-xYh7SskwddKmdF7H .activeCrit0,#mermaid-svg-xYh7SskwddKmdF7H .activeCrit1,#mermaid-svg-xYh7SskwddKmdF7H .activeCrit2,#mermaid-svg-xYh7SskwddKmdF7H .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-xYh7SskwddKmdF7H .doneCrit0,#mermaid-svg-xYh7SskwddKmdF7H .doneCrit1,#mermaid-svg-xYh7SskwddKmdF7H .doneCrit2,#mermaid-svg-xYh7SskwddKmdF7H .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-xYh7SskwddKmdF7H .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-xYh7SskwddKmdF7H .milestoneText{font-style:italic}#mermaid-svg-xYh7SskwddKmdF7H .doneCritText0,#mermaid-svg-xYh7SskwddKmdF7H .doneCritText1,#mermaid-svg-xYh7SskwddKmdF7H .doneCritText2,#mermaid-svg-xYh7SskwddKmdF7H .doneCritText3{fill:#000 !important}#mermaid-svg-xYh7SskwddKmdF7H .activeCritText0,#mermaid-svg-xYh7SskwddKmdF7H .activeCritText1,#mermaid-svg-xYh7SskwddKmdF7H .activeCritText2,#mermaid-svg-xYh7SskwddKmdF7H .activeCritText3{fill:#000 !important}#mermaid-svg-xYh7SskwddKmdF7H .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-xYh7SskwddKmdF7H g.classGroup text .title{font-weight:bolder}#mermaid-svg-xYh7SskwddKmdF7H g.clickable{cursor:pointer}#mermaid-svg-xYh7SskwddKmdF7H g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-xYh7SskwddKmdF7H g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-xYh7SskwddKmdF7H .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-xYh7SskwddKmdF7H .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-xYh7SskwddKmdF7H .dashed-line{stroke-dasharray:3}#mermaid-svg-xYh7SskwddKmdF7H #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H .commit-id,#mermaid-svg-xYh7SskwddKmdF7H .commit-msg,#mermaid-svg-xYh7SskwddKmdF7H .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-xYh7SskwddKmdF7H g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-xYh7SskwddKmdF7H g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-xYh7SskwddKmdF7H g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-xYh7SskwddKmdF7H .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-xYh7SskwddKmdF7H .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-xYh7SskwddKmdF7H .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-xYh7SskwddKmdF7H .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-xYh7SskwddKmdF7H .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-xYh7SskwddKmdF7H .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-xYh7SskwddKmdF7H .edgeLabel text{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xYh7SskwddKmdF7H .node circle.state-start{fill:black;stroke:black}#mermaid-svg-xYh7SskwddKmdF7H .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-xYh7SskwddKmdF7H #statediagram-barbEnd{fill:#9370db}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-state .divider{stroke:#9370db}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-xYh7SskwddKmdF7H .note-edge{stroke-dasharray:5}#mermaid-svg-xYh7SskwddKmdF7H .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-xYh7SskwddKmdF7H .error-icon{fill:#522}#mermaid-svg-xYh7SskwddKmdF7H .error-text{fill:#522;stroke:#522}#mermaid-svg-xYh7SskwddKmdF7H .edge-thickness-normal{stroke-width:2px}#mermaid-svg-xYh7SskwddKmdF7H .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-xYh7SskwddKmdF7H .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-xYh7SskwddKmdF7H .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-xYh7SskwddKmdF7H .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-xYh7SskwddKmdF7H .marker{fill:#333}#mermaid-svg-xYh7SskwddKmdF7H .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-xYh7SskwddKmdF7H {color: rgba(0, 0, 0, 0.75);font: ;}«interface»Car+manufacture()+transport()BaoMaCar+manufacture()+transport()ChangAnCar+manufacture()+transport()Main+ mainCarFactory+OEMCar(carType)实现实现调用OEMCar()调用manufacture()调用transport()依赖依赖

需求分析

每个品牌汽车都有一个生产的工厂,基本上都是几个大厂代工,然后换个牌子。

具体实现

package com.test.specific;/*** 生产汽车* @author 12134**/
public interface Car {/*** 制造*/void manufacture();/*** 运输*/void transport();}
package com.test.specific.impl;import com.test.specific.Car;/*** 宝马汽车* @author 12134**/
public class BaoMaCar implements Car{/*** 制造*/@Overridepublic void manufacture() {System.out.println("制造的汽车是宝马");}/*** 运输*/@Overridepublic void transport() {System.out.println("运输的汽车是宝马");}}
package com.test.specific.impl;import com.test.specific.Car;/*** 长安汽车* * @author 12134**/
public class ChangAnCar implements Car {/*** 制造*/@Overridepublic void manufacture() {System.out.println("制造的汽车是长安");}/*** 运输*/@Overridepublic void transport() {System.out.println("运输的汽车是长安");}}
package com.test.factory;import com.test.specific.Car;
import com.test.specific.impl.BaoMaCar;
import com.test.specific.impl.ChangAnCar;/*** 汽车代工工厂* @author 12134**/
public class CarFactory {/*** 代工* * @return 品牌*/public Car OEMCar(String carType) {if (carType == null) {return null;}Car car = null;if ("长安".equals(carType)) {car = new ChangAnCar();} else if ("宝马".equals(carType)) {car = new BaoMaCar();} else {throw new RuntimeException("该工厂没有代工" + carType + "品牌");}return car;}
}
package com.test;import com.test.factory.CarFactory;
import com.test.specific.Car;public class Main {public static void main(String[] args) {// 汽车代工工厂CarFactory carFactory = new CarFactory();// 代工品牌Car oemCar = carFactory.OEMCar("长安");// 汽车制造商oemCar.manufacture();// 汽车运输商oemCar.transport();}
}

结果

制造的汽车是长安
运输的汽车是长安

【设计模式 三】实战工厂汽车代工之工厂模式-简单模式相关推荐

  1. 实战4 - 汽车行驶工况构建

    1 题目简介 题目来源于2019年中国研究生数学建模竞赛D题--汽车行驶工况构建. 2 涉及内容 在本次实战的数据分析过程中,涉及以下技术内容: (1)数据预处理技术 (2)for循环的使用 (3)暴 ...

  2. 供应女鞋 - 女鞋供应商|生产工厂|OEM代工|广交会|世博会

    广州新铭鞋业有限公司 所属行业:女鞋 产品类别:主营女鞋.休闲鞋.时装鞋.靴子.凉鞋.拖鞋.增高鞋 产品优势:集设计开发生产贸易一体化 联系电话:86-0752-8888898 传真号码:86-075 ...

  3. 设计模式(三):“花瓶+鲜花”中的装饰者模式(Decorator Pattern)

    在前两篇博客中详细的介绍了"策略模式"和"观察者模式",今天我们就通过花瓶与鲜花的例子来类比一下"装饰模式"(Decorator Patte ...

  4. 《headfirst设计模式》读书笔记9-迭代器和组合模式

    目录 1. 封装遍历 2. 定义迭代器模式 2.1 部分源码 2.1.1 MenuItem.h 2.1.2 Menu.h 2.1.3 Iterator.h 2.1.4 ArrayIterator.h ...

  5. 中国代工企业进入汽车行业是为了摆脱苹果?恐怕是更好为苹果服务

    在传出中国大陆的代工企业立讯精密与奇瑞合作进入汽车行业之后,一些人士认为这是立讯精密在努力摆脱对苹果的依赖,现实情况恐怕与他们想象的不一样,立讯精密如此做应该是为了获得苹果的汽车制造订单. 近日有外媒 ...

  6. 撕掉代工标签,能否迎来芯片市场的“权力转移”?...

    内地的半导体代工产业也正一步步"撕掉"代工标签,成长为技术,真正成为世界版单体产业不可取代的部分. 要说中国哪里半导体产业链最完整,非台湾莫属.不论是上游的IC设计.中游的晶圆生产 ...

  7. 撕掉代工标签,能否迎来芯片市场的“权力转移”?

    内地的半导体代工产业也正一步步"撕掉"代工标签,成长为技术,真正成为世界版单体产业不可取代的部分. 要说中国哪里半导体产业链最完整,非台湾莫属.不论是上游的IC设计.中游的晶圆生产 ...

  8. 谁是幕后英雄?笔记本代工关系大揭秘

    十大代工厂一览 NO.1 广达-全球最大的IT代工厂商,目前全球有至少1/3的笔记本电脑均出自于广达之手... NO.2 仁宝-成立于1984年,是全球第二大笔记本代工厂,规模和实力仅次于广达... ...

  9. ​富士康能否凭借量产电动车拿到苹果汽车的代工订单?

    / 导读 / 10月18日,台湾鸿海集团举办科技日.基于鸿海(MIH EV)开放平台的首批三款电动车--纯电SUV MODEL C.纯电轿车MODEL E和电动巴士MODEL T正式对外亮相.这预示着 ...

  10. 汽车不是手机,苹果汽车的代工之路难走

    来源|连线出行 编辑|布谷 苹果正在加速推进造车步伐. 近日,据韩国媒体报道,苹果公司已和现代汽车旗下的起亚品牌达成合作,苹果公司将向其投资4万亿韩元(约合36亿美元),并会在起亚位于美国佐治亚州的组 ...

最新文章

  1. 计算机、数学、运筹学等领域的32个重要算法
  2. cpc无法获取系统office信息_智能云信息发布系统解锁信息获取新方式
  3. 企业项目构建学习(一)maven
  4. python高阶函数闭包装饰器_Python_基础_(装饰器,*args,**kwargs,高阶函数,函数闭包,函数嵌套)...
  5. 一款功能强大的IP查询工具
  6. Debug Assertion Failed!
  7. dim private public static_PHP中const,static,public,private,protected的区别
  8. Linux触发连锁反应,惠及全球
  9. Hack.Chat 在浏览器里快速建立简单、随用即丢线上聊天室,无须下载安装软体
  10. (计算机组成原理)第三章存储系统-第四节:主存储器和CPU的连接
  11. 关于C++全局变量和静态变量初始化的一些总结
  12. 自己在win10中添加ADO控件步骤总结
  13. 基本数据结构之Sort
  14. 自动化测试元素查找利器firepath介绍
  15. PAT 数字分类(20)
  16. 1.SOA架构:服务和微服务分析及设计--- 理解面向服务
  17. FPGA入门必看资源
  18. 【Dam Dadi Doo】MMD镜头+动作打包下载.zip
  19. 2020年全国大学生数学建模竞赛辽宁赛区获奖名单(本科组)
  20. 《七哥说道》第十二章:稍息,窗外的都是兄弟

热门文章

  1. python实现txt文本文档批量转为可编辑的pdf文档
  2. 文本识别之MASTER
  3. Centos 安装阿里软件安装源
  4. 函数与Lambda表达式
  5. 如何用ps将图片修改成指定大小
  6. 渗透测试 - KALI Linux 学习 - kali linux如何启动METASPLOIT服务
  7. 计算机科学与技术b类大学名单,双一流a类大学和b类大学名单及学科
  8. scrapy 爬虫框架及链家租房信息爬取示例
  9. 刚开始使用push遇到的小问题
  10. 【Linux 0.11】第九章 块设备驱动程序