当前位置: 首页 > news >正文

手机房产网站模板互联网广告营销

手机房产网站模板,互联网广告营销,做网站必须需要服务器嘛,重生做明星那个网站下载行为型模式:专注于对象之间的 协作 及如何通过彼此之间的交互来完成任务。行为型模式通常集中在描述对象之间的 责任 分配和 通信 机制,并提供了一些优雅解决特定问题的方案。 模板方法模式(Template Method Pattern)策略模式(Strategy Pattern)观察者模…

行为型模式:专注于对象之间的 协作 及如何通过彼此之间的交互来完成任务。行为型模式通常集中在描述对象之间的 责任 分配和 通信 机制,并提供了一些优雅解决特定问题的方案。

  1. 模板方法模式(Template Method Pattern)
  2. 策略模式(Strategy Pattern)
  3. 观察者模式(Observer Pattern)
  4. 迭代器模式(Iterator Pattern)
  5. 责任链模式(Chain of Responsibility Pattern)
  6. 命令模式(Command Pattern)
  7. 状态模式(State Pattern)
  8. 备忘录模式(Memento Pattern)
  9. 访问者模式(Visitor Pattern)
  10. 中介者模式(Mediator Pattern)
  11. 解释器模式(Interpreter Pattern)

模板方法模式(Template Method Pattern)

模板方法模式定义了一个算法骨架,将一些步骤延迟到子类中实现。这个模式使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。
from abc import ABC, abstractmethodclass Algorithm(ABC):def process_data(self, data):self.load_data(data)self.analyze_data()self.visualize_data()@abstractmethoddef load_data(self, data):pass@abstractmethoddef analyze_data(self):pass@abstractmethoddef visualize_data(self):passclass AudioProcessing(Algorithm):def load_data(self, data):print("Loading audio data...")def analyze_data(self):print("Analyzing audio data...")def visualize_data(self):print("Visualizing audio data...")class ImageProcessing(Algorithm):def load_data(self, data):print("Loading image data...")def analyze_data(self):print("Analyzing image data...")def visualize_data(self):print("Visualizing image data...")audio_processing = AudioProcessing()
image_processing = ImageProcessing()
audio_processing.process_data("Audio data")
image_processing.process_data("Image data")
"""
Loading audio data...
Analyzing audio data...
Visualizing audio data...
Loading image data...
Analyzing image data...
Visualizing image data...
"""

策略模式(Strategy Pattern)

策略模式定义了一系列算法,并将每个算法封装起来,再一个对外使用的类使得它们可以相互替换。
from abc import ABC, abstractmethodclass SortingStrategy(ABC):@abstractmethoddef sort(self, data):passclass MergeSort(SortingStrategy):def sort(self, data):print("Sorting data using merge sort...")class QuickSort(SortingStrategy):def sort(self, data):print("Sorting data using quick sort...")class BubbleSort(SortingStrategy):def sort(self, data):print("Sorting data using bubble sort...")class Sorter:def __init__(self, sorting_strategy):self.sorting_strategy = sorting_strategydef set_sorting_strategy(self, sorting_strategy):self.sorting_strategy = sorting_strategydef sort_data(self, data):self.sorting_strategy.sort(data)data = [5, 2, 4, 1, 3]
merge_sort = MergeSort()
quick_sort = QuickSort()
bubble_sort = BubbleSort()sorter = Sorter(merge_sort)
sorter.sort_data(data)sorter.set_sorting_strategy(quick_sort)
sorter.sort_data(data)sorter.set_sorting_strategy(bubble_sort)
sorter.sort_data(data)
"""
Sorting data using merge sort...
Sorting data using quick sort...
Sorting data using bubble sort...
"""

观察者模式(Observer Pattern)

定义一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,并在主题对象变化时得到通知。这个模式使主题对象和观察者对象可以相互独立变化。
class Subject:def __init__(self):self.observers = []def add_observer(self, observer):self.observers.append(observer)def remove_observer(self, observer):self.observers.remove(observer)def notify_observers(self, data):for observer in self.observers:observer.update(data)class Observer:def update(self, data):passclass Sensor(Subject):def read_sensor_data(self):data = 42  # read sensor data hereself.notify_observers(data)class Display(Observer):def update(self, data):print(f"Displaying sensor data: {data}")class Logging(Observer):def update(self, data):print(f"Logging sensor data: {data}")sensor = Sensor()
display = Display()
logging = Logging()sensor.add_observer(display)
sensor.add_observer(logging)sensor.read_sensor_data()
"""
Displaying sensor data: 42
Logging sensor data: 42
"""

迭代器模式(Iterator Pattern)

提供一种方法来访问一个聚合对象中各个元素,而不需暴露该对象的内部表示。这个模式使得我们可以遍历一个聚合对象,而不用关心其内部结构。
class MyList:def __init__(self):self.data = []def add_item(self, item):self.data.append(item)def __iter__(self):return MyListIterator(self)class MyListIterator:def __init__(self, my_list):self.my_list = my_listself.index = 0def __next__(self):if self.index >= len(self.my_list.data):raise StopIterationelse:item = self.my_list.data[self.index]self.index += 1return itemmy_list = MyList()
my_list.add_item("a")
my_list.add_item("b")
my_list.add_item("c")for item in my_list:print(item)
'''
a
b
c
'''

责任链模式(Chain of Responsibility Pattern)

将请求的发送者和接收者解耦,使得多个对象都有机会处理这个请求。这个模式将这些对象组成一条链,并沿着该链传递该请求,直到有一个对象处理它为止。
from abc import ABC, abstractmethodclass Handler(ABC):def __init__(self, successor=None):self.successor = successordef handle_request(self, request):if self.can_handle_request(request):self.process_request(request)elif self.successor is not None:self.successor.handle_request(request)@abstractmethoddef can_handle_request(self, request):pass@abstractmethoddef process_request(self, request):passclass ConcreteHandlerA(Handler):def can_handle_request(self, request):return request >= 0 and request < 3def process_request(self, request):print(f"Request {request} handled by ConcreteHandlerA")class ConcreteHandlerB(Handler):def can_handle_request(self, request):return request >= 3 and request < 6def process_request(self, request):print(f"Request {request} handled by ConcreteHandlerB")class ConcreteHandlerC(Handler):def can_handle_request(self, request):return request >= 6 and request < 9def process_request(self, request):print(f"Request {request} handled by ConcreteHandlerC")handler_a = ConcreteHandlerA()
handler_b = ConcreteHandlerB()
handler_c = ConcreteHandlerC()handler_a.successor = handler_b
handler_b.successor = handler_cfor request in range(1, 10):handler_a.handle_request(request)
"""
Request 1 handled by ConcreteHandlerA
Request 2 handled by ConcreteHandlerA
Request 3 handled by ConcreteHandlerB
Request 4 handled by ConcreteHandlerB
Request 5 handled by ConcreteHandlerB
Request 6 handled by ConcreteHandlerC
Request 7 handled by ConcreteHandlerC
Request 8 handled by ConcreteHandlerC
"""

命令模式(Command Pattern)

一个请求封装成一个对象,从而可将请求的发送者和接收者解耦。这个模式允许使用不同的请求来参数化对象,将请求排队或记录请求日志,以及支持可撤销的操作。
from abc import ABC, abstractmethodclass Command(ABC):@abstractmethoddef execute(self):pass@abstractmethoddef undo(self):passclass Light:def on(self):print("Light is on")def off(self):print("Light is off")class LightOnCommand(Command):def __init__(self, light):self.light = lightdef execute(self):self.light.on()def undo(self):self.light.off()class LightOffCommand(Command):def __init__(self, light):self.light = lightdef execute(self):self.light.off()def undo(self):self.light.on()class RemoteControl:def __init__(self):self.commands = []def add_command(self, command):self.commands.append(command)def execute_commands(self):for command in self.commands:command.execute()light = Light()
light_on_command = LightOnCommand(light)
light_off_command = LightOffCommand(light)remote_control = RemoteControl()
remote_control.add_command(light_on_command)
remote_control.add_command(light_off_command)remote_control.execute_commands()
"""
Light is on
Light is off
"""

状态模式(State Pattern)

允许对象在其内部状态发生改变时改变它的行为。这个模式将一个对象的状态从该对象中移出来,并将其封装到不同的状态对象中。
from abc import ABC, abstractmethodclass State(ABC):@abstractmethoddef handle(self):passclass ConcreteStateA(State):def handle(self):print("Handling state A")return ConcreteStateB()class ConcreteStateB(State):def handle(self):print("Handling state B")return ConcreteStateC()class ConcreteStateC(State):def handle(self):print("Handling state C")return ConcreteStateA()class Context:def __init__(self, initial_state):self.state = initial_statedef request(self):self.state = self.state.handle()context = Context(ConcreteStateA())
context.request()
context.request()
context.request()
"""
Handling state A
Handling state B
Handling state C
"""

备忘录模式(Memento Pattern)

允许在不破坏封装性的前提下,捕获并保存一个对象的内部状态,以便可以将该对象恢复到原先保存的状态。这个模式通常用于需要撤销操作的场景。
class Memento:  # 一个类记录状态返回状态def __init__(self, state):self.state = statedef get_state(self):return self.stateclass Originator:def __init__(self, state):self.state = statedef create_memento(self):return Memento(self.state)def restore_memento(self, memento):self.state = memento.get_state()def set_state(self, state):self.state = statedef get_state(self):return self.stateclass Caretaker:def __init__(self, originator):self.mementos = []self.originator = originatordef save_state(self):memento = self.originator.create_memento()self.mementos.append(memento)def restore_last_state(self):if len(self.mementos) > 0:memento = self.mementos.pop()self.originator.restore_memento(memento)originator = Originator("State A")
caretaker = Caretaker(originator)print(originator.get_state())
caretaker.save_state()originator.set_state("State B")
print(originator.get_state())caretaker.save_state()
originator.set_state("State C")
print(originator.get_state())caretaker.restore_last_state()
print(originator.get_state())caretaker.restore_last_state()
print(originator.get_state())
"""
State A
State B
State C
State B
State A
"""

访问者模式(Visitor Pattern)

定义了一种新的操作方式,可在不改变一个对象的类的前提下,向该对象添加新的操作。这个模式通常用于需对一个复杂的对象结构进行处理的场景。
from abc import ABC, abstractmethodclass Visitor(ABC):@abstractmethoddef visit_element_a(self, element_a):pass@abstractmethoddef visit_element_b(self, element_b):passclass Element(ABC):@abstractmethoddef accept(self, visitor):passclass ConcreteElementA(Element):  # 新操作def accept(self, visitor):visitor.visit_element_a(self)class ConcreteElementB(Element):  # 新操作def accept(self, visitor):visitor.visit_element_b(self)class ConcreteVisitor1(Visitor):def visit_element_a(self, element_a):print("ConcreteVisitor1 visiting ConcreteElementA")def visit_element_b(self, element_b):print("ConcreteVisitor1 visiting ConcreteElementB")class ConcreteVisitor2(Visitor):def visit_element_a(self, element_a):print("ConcreteVisitor2 visiting ConcreteElementA")def visit_element_b(self, element_b):print("ConcreteVisitor2 visiting ConcreteElementB")elements = [ConcreteElementA(), ConcreteElementB()]
visitors = [ConcreteVisitor1(), ConcreteVisitor2()]for element in elements:for visitor in visitors:element.accept(visitor)
'''
ConcreteVisitor1 visiting ConcreteElementA
ConcreteVisitor2 visiting ConcreteElementA
ConcreteVisitor1 visiting ConcreteElementB
ConcreteVisitor2 visiting ConcreteElementB
'''

中介者模式(Mediator Pattern)

定义了一个中介对象来封装一系列对象之间的交互。这个模式使得各对象之间不需要显式地相互引用,从而使其耦合度降低,同时也有助于复杂系统的维护。
from abc import ABC, abstractmethodclass Colleague(ABC):def __init__(self, mediator):self.mediator = mediator@abstractmethoddef send(self, message):pass@abstractmethoddef receive(self, message):passclass ConcreteColleagueA(Colleague):def send(self, message):self.mediator.send_message(message, self)def receive(self, message):print(f"ConcreteColleagueA received message: {message}")class ConcreteColleagueB(Colleague):def send(self, message):self.mediator.send_message(message, self)def receive(self, message):print(f"ConcreteColleagueB received message: {message}")class Mediator:def __init__(self):self.colleagues = []def add_colleague(self, colleague):self.colleagues.append(colleague)def send_message(self, message, sender):for colleague in self.colleagues:if colleague != sender:colleague.receive(message)mediator = Mediator()
# 创建
colleague_a = ConcreteColleagueA(mediator)
colleague_b = ConcreteColleagueB(mediator)
# 注册
mediator.add_colleague(colleague_a)
mediator.add_colleague(colleague_b)
# 通过中介对象
colleague_a.send("Hello, colleague B")
colleague_b.send("Hi, colleague A")
"""
ConcreteColleagueB received message: Hello, colleague B
ConcreteColleagueA received message: Hi, colleague A
"""

解释器模式(Interpreter Pattern)

定义了一个语言的文法,且建立一个解释器来解释该语言中的句子。这个模式常用于需对一些特定语言进行处理或解析的场景。
from abc import ABC, abstractmethodclass Expression(ABC):@abstractmethoddef interpret(self):passclass NumberExpression(Expression):def __init__(self, number):self.number = numberdef interpret(self):return self.numberclass PlusExpression(Expression):def __init__(self, expression1, expression2):self.expression1 = expression1self.expression2 = expression2def interpret(self):return self.expression1.interpret() + self.expression2.interpret()class MinusExpression(Expression):def __init__(self, expression1, expression2):self.expression1 = expression1self.expression2 = expression2def interpret(self):return self.expression1.interpret() - self.expression2.interpret()expression = MinusExpression(PlusExpression(NumberExpression(5), NumberExpression(3)),NumberExpression(2)
)print(expression.interpret())  # 6
http://www.hkea.cn/news/131489/

相关文章:

  • 门户网站建设招投标网络seo啥意思
  • 游戏币销售网站建设百度热搜seo
  • 线上投票链接怎么做厦门搜索引擎优化
  • 网页设计课程主要内容seo学校
  • php 深圳 电子商务网站开发seo优化好做吗
  • 网站建设开发技术天津济南网站设计
  • 信息公开网站建设网店推广分为哪几种类型
  • 南皮网站建设价格seo搜索引擎优化方式
  • 网上购物系统的设计与实现论文长沙seo优化公司
  • 风景旅游网页制作素材seo推广灰色词
  • 网站制作网站建设网页设计页面
  • 网站开发兼容极速字体颜色推荐seo平台优化服务
  • wordpress建站流量齐三seo顾问
  • 怎么看一个网站做没做竞价公司网站怎么建立
  • seo神马网站推广器怎么做神马搜索排名seo
  • 桂林漓江景区网站优化推广排名
  • 网站首页模板设计图网络推广平台代理
  • 一女被多男做的视频网站搜全网的浏览器
  • 建设公司网站费用电脑培训课程
  • 电子商务网站建设课后题女生学网络营销这个专业好吗
  • 新疆兵团建设网站商丘seo优化
  • 手机微信网站怎么做的软文发布网站
  • 传奇手游发布网站seo排名优化方式
  • 网站建设明细报价外链信息
  • 哪个网站做漫画可以有钱营销型网站设计
  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家