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

厦门同安区建设局网站品牌营销推广策划公司

厦门同安区建设局网站,品牌营销推广策划公司,怎么用本机做服务器发布网站,腾讯企业邮箱登录入口下载1. 介绍 结构型设计模式(Structural Patterns) 主要关注类与对象的组合,以提高代码的灵活性和可维护性。这些模式帮助创建更大结构,同时保持代码的低耦合性。 结构型设计模式包括以下七种: 适配器模式(Ad…

1. 介绍

结构型设计模式(Structural Patterns) 主要关注类与对象的组合,以提高代码的灵活性和可维护性。这些模式帮助创建更大结构,同时保持代码的低耦合性。

结构型设计模式包括以下七种:

  1. 适配器模式(Adapter)

  2. 桥接模式(Bridge)

  3. 组合模式(Composite)

  4. 装饰器模式(Decorator)

  5. 外观模式(Facade)

  6. 享元模式(Flyweight)

  7. 代理模式(Proxy)


2. 适配器模式(Adapter)

目的:使接口不兼容的类能够协同工作。

实现方式:通过包装(Wrapper)转换接口。

示例(Python 实现):

class OldSystem:def specific_request(self):return "Old System Data"class Adapter:def __init__(self, old_system):self.old_system = old_systemdef request(self):return self.old_system.specific_request()old_system = OldSystem()
adapter = Adapter(old_system)
print(adapter.request())

3. 桥接模式(Bridge)

目的:分离抽象部分和实现部分,使它们可以独立变化。

示例

class Implementation:def operation(self):passclass ConcreteImplementationA(Implementation):def operation(self):return "Implementation A"class Abstraction:def __init__(self, implementation):self.implementation = implementationdef operation(self):return self.implementation.operation()abstraction = Abstraction(ConcreteImplementationA())
print(abstraction.operation())

4. 组合模式(Composite)

目的:处理树形结构,使单个对象和组合对象的使用一致。

示例

class Component:def operation(self):passclass Leaf(Component):def operation(self):return "Leaf"class Composite(Component):def __init__(self):self.children = []def add(self, component):self.children.append(component)def operation(self):return "+".join([child.operation() for child in self.children])leaf = Leaf()
composite = Composite()
composite.add(leaf)
print(composite.operation())

5. 装饰器模式(Decorator)

目的:动态地给对象增加额外的功能。

示例

def decorator(func):def wrapper():print("Before Function Call")func()print("After Function Call")return wrapper@decorator
def function():print("Hello")function()

6. 外观模式(Facade)

目的:提供一个统一的接口,简化子系统的复杂性。

示例

class SubsystemA:def operation(self):return "SubsystemA Operation"class SubsystemB:def operation(self):return "SubsystemB Operation"class Facade:def __init__(self):self.a = SubsystemA()self.b = SubsystemB()def operation(self):return f"{self.a.operation()} + {self.b.operation()}"facade = Facade()
print(facade.operation())

7. 享元模式(Flyweight)

目的:减少内存占用,通过共享相似对象来避免创建大量相同对象。

示例

class Flyweight:_instances = {}@staticmethoddef get_instance(key):if key not in Flyweight._instances:Flyweight._instances[key] = Flyweight()return Flyweight._instances[key]fw1 = Flyweight.get_instance("A")
fw2 = Flyweight.get_instance("A")
print(fw1 is fw2)  # True

8. 代理模式(Proxy)

目的:控制对象的访问,如权限控制、远程代理、虚拟代理。

示例

class RealSubject:def request(self):return "RealSubject Request"class Proxy:def __init__(self, real_subject):self.real_subject = real_subjectdef request(self):print("Proxy: Checking Access")return self.real_subject.request()real = RealSubject()
proxy = Proxy(real)
print(proxy.request())

9. 总结

结构型设计模式 通过合理组织类和对象,使系统更灵活、可扩展。根据不同需求,选择合适的模式:

模式主要作用
适配器模式连接不同接口的类
桥接模式分离抽象和实现,提高扩展性
组合模式处理树形结构,使单个对象和组合对象一致
装饰器模式动态添加功能,提高灵活性
外观模式提供统一接口,简化复杂系统调用
享元模式共享对象,减少内存占用
代理模式控制对象访问,如远程代理、权限管理
http://www.dtcms.com/wzjs/590668.html

相关文章:

  • 做网站42类商标怎么选小类乐居房产官方网站
  • 用什么软件做网站最好和田网站建设
  • 做推广网站有什么WordPress知更鸟lts
  • 西宁最好网站建设公司哪家好wordpress 问答模块
  • 河南科兴建设有限公司网站做企业网站需要购什么
  • 修改网站搜索缩略图新品牌营销策划方案
  • 阳江招聘网站南宁网站建设网络公司
  • 网站文件夹命名seo用vs2008做网站教程
  • 学校网站做网页飘窗怎么做谷歌搜索关键字网站
  • 上海网站推广策划买一个成品网站多少钱
  • 网站大数据怎么做常州网站建设公司排名
  • 个人网站模板 php暂时关闭wordpress插件
  • 企业如何申请网站wordpress3.5.1漏洞
  • 网页设计设计网站建设正规网店加盟代理
  • 做网站 php python平面网页设计是做什么的
  • 杭州网站建设公司有哪些wordpress错误
  • 网站icp备案申请wordpress博客怎么设置主题
  • 建设有限公司网站检查网站的跳转路径是否清晰 哪里要优化
  • 免费红色ppt模板网站广州品牌策划有限公司
  • 鄂州网站制作企业新手怎么做网站内容维护
  • 榆林网站开发大连手机自适应网站制作公司
  • 网站备案需要哪些材料网站收录和没收录区别
  • 网页设计实训报告工作内容和步骤seo属于运营还是技术
  • 网站seo推广优化报价表网站建设满意度问卷调查
  • 建设网站比较好网站设计确认书
  • 福建有没有网站做鞋子一件代发qq官网登录
  • 做新闻微网站有哪些方面现在去横琴会变黄码吗
  • 贵阳做网站需要多少钱有哪些好的做问卷调查的网站好
  • 江西省美丽乡村建设公布网站网站换ip影响 百度
  • 北京建设教育协会的网站广州新业建设管理有限公司网站