1. Описание сцены
Паттерн застройщика такой же, как и заводской шаблон и абстрактный заводской шаблон, и используется для создания унаследованных объектов класса.
Фабричный режим: режим заводского режима Java Design
Абстрактная заводская шаблон: шаблон дизайна Java Абстрактный заводской шаблон
Разница в том, что в заводском режиме каждый подкласс реализует интерфейсы и создает подклассы объекты через заводский класс; Находясь в режиме застройщика, каждый подкласс имеет свой класс строителей и создает различные объекты родительского класса через него и в конечном итоге реализует полиморфизм. На самом деле, подклассы и родительские классы не существуют в коде.
Принимая инструмент сбора данных прибора в качестве примера, в режиме завода определить интерфейс «Инструмент сбора данных инструментов», определить подклассы «Инструмент данных файлов файлов PDF» и «инструмент сбора данных Excel файла» и реализовать интерфейс в подклассе. Объекты подкласса создаются с помощью заводских классов (будь то статический фабричный класс или абстрактный фабричный класс), и эти объекты имеют разные выражения, то есть полиморфизм.
В режиме Builder определите «Инструмент сбора данных инструментов» родительского класса, а затем используйте «инструмент сбора данных файлов файлов файлов PDF» и «Класс инструмента сбора данных файлов Excel» для назначения различных методов выражения (присваивайте различные значения для полей и т. Д.) И, наконец, достичь полиморфизма.
В режиме застройщика директор похож на директор. Он называет строителя застройщика для завершения создания классовых объектов. Вызывающий звонок может просто позвонить директору, как показано на рисунке ниже:
Конечно, заводская модель буквально используется для создания объектов, в то время как модель застройщика буквально используется для создания разных объектов. Эти два могут достичь аналогичных функций, но сценарии применения двух могут быть очень разными.
Заводская модель используется для создания простого объекта класса, в то время как модель застройщика используется для создания сложного объекта класса. Конкретная информация может быть изучена из Baidu.
Например, при расширении добавьте сбор данных файлов Word и создайте свой класс застройщиков, который реализует создание программ сбора данных файлов файлов Word; При звонке вы можете позвонить, используя класс WordBuilder.
2. Пример кода
(Родитель) класс:
пакет lims.designpatterndemo.builderdemo; public Class EquipmentDataCapture {Private String filePath; частная строковая оборудованиедата; // public String getFilePath () {return this.filepath; } public void setFilePath (String filePath) {this.filePath = filePath; } public String getequipmentData () {return this.equipmentData; } public void setequipmentData (String EquipmentData) {this.equipmentData = EquipmentData; }}Интерфейс строителя:
пакет Lims.designpatterndemo.builderdemo; Public Interface EquipmentDataCaptureBuilder {// Component void buildFilePath (); void buildequipmentData (); // Сборка оборудования.Категория строителей данных PDF -сбора данных:
пакет Lims.designpatterndemo.builderdemo; открытый класс PdffileCaptureBuilder реализует оборудование DearAtacaptureBuilder {// EquipmentDataCapture захват; // Создание public pdffileCaptureBuilder () {capture = new EquipmentDataCapture (); } // @Override public void buildFilePath () {capture.setFilePath (". Pdf"); } @Override public void buildEquipmentData () {capture.setequipmentData ("PDF -файловое содержание"); } @Override Public EquipmentDataCapture BuildEquipmentDataCapture () {return Capture; }}Excel Data Builder:
Package Lims.designpatterndemo.builderdemo; открытый класс ExcelfileCaptureBuilder реализует eaversedDataCaptureBuilder {// EquipmentDataCapture захват; // Создание public ExcelfileCaptureBuilder () {Capture = New EquipmentDataCapture (); } @Override public void buildFilePath () {capture.setFilePath (". Xlsx"); } @Override public void buildEquipmentData () {capture.setequipmentData ("Excel файловое содержание"); } @Override Public EquipmentDataCapture BuildEquipmentDataCapture () {return Capture; }}Класс директоров, можно просто понимать как директор класс:
Package Lims.DesignPatterndemo.BuilderDemo; Public Class EquipmentDataCaptureDirector {Public EquipmentDataCapture ConstructeQuupmentDataCapture (EquipmentDataCapture Builder) {Builder.BuildFilePath (); Builder.BuildEquippmentData (); Оборудование, предназначенное для оборудования, захват = Builder.BuildEquipmentDataCapture (); вернуть захват; }}Пример побочной стороны:
пакет lims.designpatterndemo.builderdemo; public class builderdemo {public static void main (string [] args) {EquipmentDataCapturedIrector dieCotr = new EquipmentDataCaptureDirector (); EquipmentDataCaptureBuilder Builder = новый pdffileCaptureBuilder (); Builder = новый ExcelfileCaptureBuilder (); Оборудование, представляющее собой захват = Direcotr.constructeQuupmentDataCapture (строитель); System.out.println (capture.getequipmentData ()); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.