package com.czie.d3_factory_pattern; /** 目標(biāo):工廠模式。 什么是工廠設(shè)計(jì)模式? 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計(jì)模式之一。 這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的方式。 之前我們創(chuàng)建類對(duì)象時(shí), 都是使用new 對(duì)象的形式創(chuàng)建, 除new 對(duì)象方式以外, 工廠模式也可以創(chuàng)建對(duì)象。 工廠設(shè)計(jì)模式的作用: 1.對(duì)象通過工廠的方法創(chuàng)建返回,工廠的方法可以為該對(duì)象進(jìn)行加工和數(shù)據(jù)注入。 2.可以實(shí)現(xiàn)類與類之間的解耦操作(核心思想,重點(diǎn)) 小結(jié): 工廠模式的思想是提供一個(gè)工廠方法返回對(duì)象! */ public class FactoryDemo { public static void main(String[] args) { Computer c1=FactoryPattern.createComputer("huawei"); c1.start(); Computer c2=FactoryPattern.createComputer("mac"); c2.start(); } }
package com.czie.d3_factory_pattern; /** * FileName: FactoryPattern * Author: lps * Date: 2022/4/29 11:58 * Sign:劉品水 Q:1944900433 */ public class FactoryPattern { /** * 定義一個(gè)方法 創(chuàng)建對(duì)象返回 */ public static Computer createComputer(String info) { switch (info) { case "huawei": Computer c1 = new Huawei(); c1.setName("huawei pro 16"); c1.setPrice(4399); return c1; case "mac": Computer c2 = new Mac(); c2.setName("MacBook2022"); c2.setPrice(8999); return c2; default: return null; } } }
package com.czie.d3_factory_pattern; /** * FileName: Mac * Author: lps * Date: 2022/4/29 11:42 * Sign:劉品水 Q:1944900433 */ public class Mac extends Computer{ @Override public void start() { System.out.println(getName()+"一個(gè)小蘋果,蘋果電腦開機(jī)咯"); } }
package com.czie.d3_factory_pattern; /** * FileName: Huawei * Author: lps * Date: 2022/4/29 11:44 * Sign:劉品水 Q:1944900433 */ public class Huawei extends Computer{ @Override public void start() { System.out.println(getName()+"開機(jī),展示華為的圖標(biāo)~~~"); } }
package com.czie.d3_factory_pattern; /** * FileName: Computer * Author: lps * Date: 2022/4/29 11:41 * Sign:劉品水 Q:1944900433 */ public abstract class Computer { private String name; private double price; public abstract void start(); public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }
?
本文摘自 :https://www.cnblogs.com/