大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 抽象工廠模式實例

抽象工廠模式實例

更新時間:2022-09-20 10:09:10 來源:動力節點 瀏覽1009次

同源政策是否足夠?

同源策略加強了一些安全性,但不足以防止各種攻擊。他們之中有一些是:

跨站點請求偽造(CSRF)攻擊基本上利用了不同的來源。這就是為什么除了同源策略之外還應該使用反 CSRF 令牌的原因。

同源策略也可以防止跨站點腳本(XSS)攻擊,但為了防止它必須限制從外部源加載腳本,這可能會破壞 Web 應用程序的功能。

抽象工廠模式圍繞創建其他工廠的超級工廠工作。這個工廠也被稱為工廠的工廠。這種類型的設計模式屬于創建模式,因為這種模式提供了創建對象的最佳方法之一。

在抽象工廠模式中,接口負責創建相關對象的工廠,而無需明確指定它們的類。每個生成的工廠都可以按照工廠模式提供對象。

執行

我們將創建一個 Shape 接口和一個實現它的具體類。我們創建一個抽象工廠類 AbstractFactory 作為下一步。定義了工廠類 ShapeFactory,它擴展了 AbstractFactory。創建了一個工廠創建者/生成器類 FactoryProducer。

AbstractFactoryPatternDemo,我們的演示類使用 FactoryProducer 來獲取 AbstractFactory 對象。它將信息(形狀的 CIRCLE / RECTANGLE / SQUARE)傳遞給 AbstractFactory 以獲取它需要的對象類型。

步驟1

為 Shapes 創建一個界面。

public interface Shape {
   void draw();
}

步驟2

創建實現相同接口的具體類。

public class RoundedRectangle implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside RoundedRectangle::draw() method.");
   }
}
public class RoundedSquare implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside RoundedSquare::draw() method.");
   }
}
public class Rectangle implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside Rectangle::draw() method.");
   }
}

步驟3

創建一個 Abstract 類以獲取 Normal 和 Rounded Shape 對象的工廠。

public abstract class AbstractFactory {
   abstract Shape getShape(String shapeType) ;
}

步驟4

創建工廠類擴展 AbstractFactory 以根據給定信息生成具體類的對象。

public class ShapeFactory extends AbstractFactory {
   @Override
   public Shape getShape(String shapeType){    
      if(shapeType.equalsIgnoreCase("RECTANGLE")){
         return new Rectangle();         
      }else if(shapeType.equalsIgnoreCase("SQUARE")){
         return new Square();
      }	 
      return null;
   }
}
public class RoundedShapeFactory extends AbstractFactory {
   @Override
   public Shape getShape(String shapeType){    
      if(shapeType.equalsIgnoreCase("RECTANGLE")){
         return new RoundedRectangle();         
      }else if(shapeType.equalsIgnoreCase("SQUARE")){
         return new RoundedSquare();
      }	 
      return null;
   }
}

步驟5

創建一個工廠生成器/生產者類,通過傳遞諸如 Shape 之類的信息來獲取工廠

public class FactoryProducer {
   public static AbstractFactory getFactory(boolean rounded){   
      if(rounded){
         return new RoundedShapeFactory();         
      }else{
         return new ShapeFactory();
      }
   }
}

步驟6

使用 FactoryProducer 獲取 AbstractFactory 以便通過傳遞類型等信息來獲取具體類的工廠。

public class AbstractFactoryPatternDemo {
   public static void main(String[] args) {
      //get shape factory
      AbstractFactory shapeFactory = FactoryProducer.getFactory(false);
      //get an object of Shape Rectangle
      Shape shape1 = shapeFactory.getShape("RECTANGLE");
      //call draw method of Shape Rectangle
      shape1.draw();
      //get an object of Shape Square 
      Shape shape2 = shapeFactory.getShape("SQUARE");
      //call draw method of Shape Square
      shape2.draw();
      //get shape factory
      AbstractFactory shapeFactory1 = FactoryProducer.getFactory(true);
      //get an object of Shape Rectangle
      Shape shape3 = shapeFactory1.getShape("RECTANGLE");
      //call draw method of Shape Rectangle
      shape3.draw();
      //get an object of Shape Square 
      Shape shape4 = shapeFactory1.getShape("SQUARE");
      //call draw method of Shape Square
      shape4.draw();      
   }
}

步驟7

驗證輸出。

Inside Rectangle::draw() method.
Inside Square::draw() method.
Inside RoundedRectangle::draw() method.
Inside RoundedSquare::draw() method.

以上就是關于“抽象工廠模式實例”的介紹,大家如果對此比較感興趣,想了解更多相關知識,不妨來關注一下本站的Java設計模式技術文檔,里面還有更豐富的知識等著大家去學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 爱我久久视频免费观看影视 | 日本四虎影院 | 国产国拍亚洲精品永久不卡 | 一区二区三区鲁丝不卡麻豆 | 色狠狠xx | 国产娱乐凹凸视觉盛宴在线视频 | 欧美成人hd| 福利影院在线播放 | 青草久久网| 成人嫩草研究院网站进 | 国产精品久久久久久一区二区三区 | 国产尤物福利视频一区二区 | 偷偷操网站 | 免费一级欧美片在线观免看 | 久久这里只有精品1 | 91在线精品老司机免费播放 | 欧美 日韩 中文字幕 | 99热这里只有精品免费国产 | 精品国产午夜久久久久九九 | 99尹人香蕉国产免费天天拍 | 免费看黄片毛片 | 四虎精品永久在线网址 | 国产51自产区在线 | 美国黑人特大一级毛片 | 欧美大尺度免费一级特黄 | 欧美一级aⅴ毛片 | 99热最新网址 | 成年激情网 | 毛色毛片免费看 | 亚洲国产天堂久久综合9999 | 欧美区一区二区三 | 久久成年视频 | 9984四虎永久免费网站 | 国内精品久久久久激情影院 | 久久伊人精品综合观看99 | 亚洲欧洲精品成人久久曰 | 久久精品影院一区二区三区 | 热热涩热热狠狠色香蕉综合 | 成人毛片18岁女人毛片免费看 | 毛片视频网站在线观看 | 亚洲性爰视频 |