日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

JAVA常用设计模式(一、单例模式、工厂模式)

發(fā)布時(shí)間:2025/3/15 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA常用设计模式(一、单例模式、工厂模式) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JAVA設(shè)計(jì)模式之單例模式

?

import java.util.HashMap; import java.util.Map;/*** 設(shè)計(jì)模式之單例模式* 單例模式(Singleton Pattern)是 Java 中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。* 這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)創(chuàng)建自己的對(duì)象,同時(shí)確保只有單個(gè)對(duì)象被創(chuàng)建。這個(gè)類提供了一種訪問(wèn)其唯一的對(duì)象的方式,可以直接訪問(wèn),* 不需要實(shí)例化該類的對(duì)象。* * 1.單例模式只能有一個(gè)實(shí)例* 2.單例必須自己創(chuàng)建自己的唯一實(shí)例* 3.單例必須給其他所有對(duì)象提供這一實(shí)例* * 主要解決:一個(gè)全局使用的類頻繁地創(chuàng)建與銷毀。* * 何時(shí)使用:當(dāng)您想控制實(shí)例數(shù)目,節(jié)省系統(tǒng)資源的時(shí)候。* * @author dyq**/ public class DesignPatternSingleton {public static void main(String[] args) {SlackerSingletonObject slackerSingletonObject = SlackerSingletonObject.getInstance();HungrySingletonObject hungrySingletonObject = HungrySingletonObject.getInstance();EnumSingletonObject enumSingletonObject = EnumSingletonObject.INSTANCE;} } /*** 懶漢模式-單例模式* @author dyq**/ class SlackerSingletonObject{private static SlackerSingletonObject instance;private SlackerSingletonObject() {System.out.println("加載SlackerSingletonObject");}public static synchronized SlackerSingletonObject getInstance() {if(instance==null) {instance = new SlackerSingletonObject();}return instance;}public static Map<String,Object> getProFile(){Map<String,Object> map = new HashMap<String,Object>();map.put("jdbcDriver", "oracle");return map;} } /*** 餓漢模式-單例模式*/ class HungrySingletonObject{private static HungrySingletonObject instance = new HungrySingletonObject();private String name ;private HungrySingletonObject() {System.out.println("加載HungrySingletonObject");}public static HungrySingletonObject getInstance() {return instance;}public static Map<String,Object> getProFile(){Map<String,Object> map = new HashMap<String,Object>();map.put("jdbcDriver", "oracle");return map;} }/*** 枚舉--單例模式*/ enum EnumSingletonObject{INSTANCE;public static Map<String,Object> getProFile(){Map<String,Object> map = new HashMap<String,Object>();map.put("jdbcDriver", "oracle");return map;} }

JAVA設(shè)計(jì)模式之工廠模式

?

/*** 設(shè)計(jì)模式之工廠模式* 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。* 在工廠模式中,我們?cè)趧?chuàng)建對(duì)象時(shí)不會(huì)對(duì)客戶端暴露創(chuàng)建邏輯,并且是通過(guò)使用一個(gè)共同的接口來(lái)指向新創(chuàng)建的對(duì)象。* * 主要解決:主要解決接口選擇的問(wèn)題。* 何時(shí)使用:我們明確地計(jì)劃不同條件下創(chuàng)建不同實(shí)例時(shí)。* 如何解決:讓其子類實(shí)現(xiàn)工廠接口,返回的也是一個(gè)抽象的產(chǎn)品。* 關(guān)鍵代碼:創(chuàng)建過(guò)程在其子類執(zhí)行。* @author dyq**/ public class DesignPatternFactory {public static void main(String[] args) {ShapeFactory shapeFactory = new ShapeFactory();//獲取 Circle 的對(duì)象,并調(diào)用它的 draw 方法Shape shape1 = shapeFactory.getShape("CIRCLE");//調(diào)用 Circle 的 draw 方法 shape1.draw();//獲取 Rectangle 的對(duì)象,并調(diào)用它的 draw 方法Shape shape2 = shapeFactory.getShape("RECTANGLE");//調(diào)用 Rectangle 的 draw 方法 shape2.draw();//獲取 Square 的對(duì)象,并調(diào)用它的 draw 方法Shape shape3 = shapeFactory.getShape("SQUARE");//調(diào)用 Square 的 draw 方法 shape3.draw();} }interface Shape{public void draw(); }class Rectangle implements Shape{@Overridepublic void draw() {System.out.println("Inside Square::draw() method.");}} class Circle implements Shape{@Overridepublic void draw() {System.out.println("Inside Circle::draw() method.");} } class Square implements Shape {@Overridepublic void draw() {System.out.println("Inside Square::draw() method.");} } class ShapeFactory {public Shape getShape(String shapeType) {if(shapeType==null) {return null;}if(shapeType.equalsIgnoreCase("CIRCLE")) {return new Circle();}else if(shapeType.equalsIgnoreCase("RECTANGLE")) {return new Rectangle();}else {return new Square();}} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/XiOrang/p/9355602.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的JAVA常用设计模式(一、单例模式、工厂模式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。