
设计模式
文章平均质量分 71
东辰叶落
漫天的我落在枫叶上雪花上
展开
-
09-责任链模式-C语言实现
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有机会处理请求, 从而避免了请求的发送者和接受者之间的耦合关系。原创 2024-01-07 12:06:27 · 1220 阅读 · 0 评论 -
09-命令者模式-C语言实现
是一个高内聚的模式, 其定义为: Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations.(将一个请求封装成一个对象, 从而让你使用不同的请求把客户端参数化, 对请求排队或者记录请求日志, 可以提供命令的撤销和恢复功能。原创 2023-12-02 20:07:42 · 176 阅读 · 0 评论 -
04-模板方法模式-C语言实现
模板方法模式将算法的骨架和具体步骤的实现进行了解耦,通过在抽象基类中定义模板方法,并使用函数指针回调具体实现类的函数来实现多态性,可以灵活地扩展和定制算法的具体步骤。,它接收一个抽象基类对象作为参数,并依次调用对象的三个函数指针,完成算法的骨架部分。,其中包含了三个函数指针,对应模板方法中的三个步骤。然后定义了具体实现类。函数中创建了两个不同的具体实现类的对象,并调用模板方法进行测试。在上面的示例代码中,首先定义了一个抽象基类。,它们分别实现了抽象基类中的三个步骤。,以及另一个具体实现类。原创 2023-11-26 16:12:32 · 346 阅读 · 0 评论 -
08-中介者模式-C语言实现
explicitly,and it lets you vary their interaction independently.(用一个中介对象封装一系列的对象交互, 中介者使各对象不需要显示地相互作用, 从而使其耦合松散, 而且可以独立地改变它们之间的交互。原创 2023-12-02 14:22:40 · 479 阅读 · 0 评论 -
07-原型模式-C语言实现
对象的构造函数是私有的,不能直接调用,但又需要复制该对象。可以动态克隆对象,减少了对象创建过程中的时间和资源消耗。对象的创建方式比较固定,但是需要某些属性进行个性化设置。可以隐藏对象创建细节,使用户无需关心对象的创建方式。对象的创建过程比较复杂或耗时,需要缩短对象创建时间。,包括引用类型的属性,否则会出现浅拷贝导致的问题。在上面的示例代码中,首先定义了原型接口。,然后通过克隆函数创建了一个新的对象。,它实现了原型接口中的克隆函数。函数中,创建了一个具体原型对象。,最后输出了新对象的属性。原创 2023-12-02 13:51:26 · 796 阅读 · 0 评论 -
06-代理模式-C语言实现
它包含了一个指向具体主题对象的引用,并实现了与具体主题相同的接口函数。可以实现延迟加载,当真正需要时才创建或访问目标对象,提高系统性能。可以实现对目标对象的访问控制,例如验证权限、监控访问等。可能会降低系统的性能,特别是在需要频繁访问目标对象时。可以隐藏目标对象的具体实现细节,保护目标对象的安全。需要对目标对象进行扩展,例如增加额外的操作。需要对目标对象进行保护,隐藏其具体实现细节。在上面的示例代码中,首先定义了抽象主题接口。增加了系统复杂性,引入了额外的代理对象。,它实现了抽象主题接口中的函数。原创 2023-11-26 18:09:31 · 462 阅读 · 0 评论 -
02-工厂模式-C语言实现
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一个统一的工厂类,通过传入不同的参数来创建不同的产品对象。简单工厂模式将对象的创建逻辑封装在工厂类中,客户端只需通过工厂类来获取所需的产品对象,而无需关心具体的创建过程。需要注意的是,简单工厂模式并不是一个严格的设计模式,它更像是一种编程习惯或者一种简化对象创建的方法。在具体项目中,根据实际需求和复杂度,可以选择使用其他更灵活和可扩展的创建型设计模式,如工厂方法模式或抽象工厂模式。,它包含一个用于创建产品的函数。原创 2023-11-26 15:22:35 · 124 阅读 · 0 评论 -
03-抽象工厂模式-C语言实现
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个接口或抽象类,用于创建相关或依赖对象的家族,而不需要指定具体的类。抽象工厂模式通过封装一组相关的产品对象的创建逻辑,使得客户端可以通过统一的接口来创建这些产品对象。需要注意的是,抽象工厂模式适合处理产品族的创建,而不适合处理单个产品的创建。另外,抽象工厂模式在系统中增加了抽象性,如果系统规模较小或者产品结构简单,可能会显得过度设计,此时可以考虑使用简单工厂模式。原创 2023-11-26 15:54:19 · 237 阅读 · 0 评论 -
01-单例模式-支持并发的C语言实现
需要注意的是,使用单例模式时应该慎重考虑,合理评估是否真正需要全局唯一实例。滥用单例模式可能会导致代码复杂性增加,并且可能隐藏了类之间的依赖关系。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点以获取该实例。原创 2023-11-26 16:05:50 · 380 阅读 · 0 评论 -
05-建造者模式-C语言实现
建造者模式将产品的构建过程与产品的表示分离,使得构建过程可以独立于产品而变化。通过使用建造者模式,可以更加灵活地构建复杂对象,并且可以复用相同的构建过程来创建不同的产品。具体建造者类通过实现不同的构建方法来构建产品的不同部分,并提供获取最终产品的函数。需要创建复杂的对象,而且对象的构建过程是稳定的,但是具体的构建步骤可能会有所差异。如果产品的组成部分发生变化,可能需要修改建造者类的代码,影响系统的稳定性。需要控制对象的创建过程,并且希望隐藏产品的创建细节,只暴露出产品的接口。函数中,创建了具体建造者对象。原创 2023-11-26 16:39:55 · 350 阅读 · 0 评论