Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
-4 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 70

Используя шаблон «Строитель»

25.04.2017, 21:02. Показов 1496. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Используя шаблон «Строитель» разработать программу, которая получая на вход файл с
данными в формате xml в зависимости от выбора пользователя выводила их на стандартный
вывод или в обычном текстовом формате, или в виде html таблиц, или в виде json формате.
Паттерн «Builder»
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Example of `builder' design pattern
class Director:
 """ Controls the construction process.
 Director has a builder associated with him. Director then
 delegates building of the smaller parts to the builder and
 assembles them together.
 """
 __builder = None
 def setBuilder(self, builder):
 self.__builder = builder
 # The algorithm for assembling a car
 def getCar(self):
 car = Car()
 # First goes the body
 body = self.__builder.getBody()
 car.setBody(body)
 # Then engine
 engine = self.__builder.getEngine()
 car.setEngine(engine)
 # And four wheels
 i = 0
 while i < 4:
 wheel = self.__builder.getWheel()
 car.attachWheel(wheel)
 i += 1
 return car
# The whole product
class Car:
 """ The final product.
 A car is assembled by the `Director' class from
 parts made by `Builder'. Both these classes have
 influence on the resulting object.
 """
 def __init__(self):
 self.__wheels = list()
 self.__engine = None
 self.__body = None
 def setBody(self, body):
 self.__body = body
 def attachWheel(self, wheel):
 self.__wheels.append(wheel)
 def setEngine(self, engine):
 self.__engine = engine
 def specification(self):
 print "body: %s" % self.__body.shape
 print "engine horsepower: %d" % self.__engine.horsepower
 print "tire size: %d\'" % self.__wheels[0].size
class Builder:
 """ Creates various parts of a vehicle.
 This class is responsible for constructing all
 the parts for a vehicle.
 """
 
 def getWheel(self): pass
 def getEngine(self): pass
 def getBody(self): pass
class JeepBuilder(Builder):
 """ Concrete Builder implementation.
 This class builds parts for Jeep's SUVs.
 """
 def getWheel(self):
 wheel = Wheel()
 wheel.size = 22
 return wheel
 def getEngine(self):
 engine = Engine()
 engine.horsepower = 400
 return engine
 def getBody(self):
 body = Body()
 body.shape = "SUV"
 return body
class NissanBuilder(Builder):
 """ Concrete Builder implementation.
 This class builds parts for Nissan's family cars.
 """
 def getWheel(self):
 wheel = Wheel()
 wheel.size = 16
 return wheel
 def getEngine(self):
 engine = Engine()
 engine.horsepower = 85
 return engine
 def getBody(self):
 body = Body()
 body.shape = "hatchback"
 return body
# Car parts
class Wheel:
 size = None
class Engine:
 horsepower = None
class Body:
 shape = None
def main():
 jeepBuilder = JeepBuilder()
 nissanBuilder = NissanBuilder()
 director = Director()
 # Build Jeep
 print "Jeep"
 director.setBuilder(jeepBuilder)
 jeep = director.getCar()
 jeep.specification()
 print ""
 # Build Nissan
 print "Nissan"
 director.setBuilder(nissanBuilder)
 nissan = director.getCar()
 nissan.specification()
if __name__ == "__main__":
 main()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2017, 21:02
Ответы с готовыми решениями:

шаблон «Строитель»
Используя шаблон «Строитель» разработать программу, которая получая на вход файл с данными в формате xml в зависимости от выбора...

Потестируйте шаблон Строитель
Всем привет.Написал код для патерна Строитель,можете мне указать на мои ошибки?Буду очень благодарен class CHouse { friend class...

Изменение строки, используя шаблон
Необходимо изменить список с наименованием сигналов используя заранее определенный шаблон. Есть текстовый файл c:\spisok.txt, в нем...

1
 Аватар для Delvin-fil
35 / 33 / 19
Регистрация: 22.01.2015
Сообщений: 215
26.04.2017, 08:46
Надо бы код в тег [PYTHON][/ PYTHON] поместить, а то ничего не понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2017, 08:46
Помогаю со студенческими работами здесь

Отправка объекта БД по почте используя шаблон
Добрый день, знатоки! Никак не могу настроить макрокоманду ОтправитьОбъектБД таким образом, чтобы она использовала шаблон письма и...

Добавить картинку в кнопку используя шаблон
Есть шаблон &lt;ResourceDictionary xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; ...

Передача данных деревьями в шаблон используя mptt
Коллеги, помогите понять в чем беда. Есть шаблон index с кодом {% recursetree tasks %} &lt;li class=&quot;show_task&quot;&gt; ...

Какой шаблон тут используется? Шаблон класса или шаблон функции
Какой шаблон тут используется? Шаблон класса или шаблон функции,и с объяснениями пожалуйста #include &lt;iostream&gt; using...

Как перенести проект с WF на WPF используя шаблон MVVM?
Есть уже созданный проект на форме, со всеми проверками и данными, теперь его следует перенести на WPF используя шаблон MVVM. Я до конца не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru