大话设计模式-模式

简介: 大话设计模式-模式

一、商场促销——策略模式

正常收费、满减和打折都是继承了现金收费抽象类,在CashContext类中实例化了正常收费、满减和打折三个类,在客户端调用CashContext一个类,便实现了商场促销活动的功能。


策略模式是用来封装的,那在该例子中,他封装了正常收费、满减和打折三个类。


策略模式比简单工厂模式有什么优点?

1、减少了各种算法类与使用算法类之间的耦合。

比如简单工厂模式在客户端要认识两个类CashSuper和CashFactory,而策略模式与简单工厂结合的用法,客户端只需要认识一个类CashContext。

2、继承有助于析取出这些算法中的公共功能。

比如在Context类中获得计算费用的结果GetResult()。


二、单一职责原则

定义:就一个类而言,应该仅有一个引起它变化的原因。

如果一个类承担的职责过多,就等于把这些啧啧耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。


三、开放-封闭原则

定义:是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。

对于扩展是开放的,对于更改是封闭的。


四、依赖倒转原则

a. 高层模块不应该依赖低层模块。两个都应该依赖抽象;

b. 抽象不应该依赖细节,细节应该依赖抽象。


五、里氏代换原则

子类型必须能够替换掉它们的父类型。


六、小菜扮靓记——装饰模式

装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

优点:把类中的装饰功能从类中搬移去除,这样可以简化原有的类。


相关文章
|
10天前
|
设计模式 安全 NoSQL
【设计模式】JAVA Design Patterns——Abstract-document(抽象文档模式)
【设计模式】JAVA Design Patterns——Abstract-document(抽象文档模式)
|
9天前
|
设计模式 Java API
【设计模式】JAVA Design Patterns——Combinator(功能模式)
【设计模式】JAVA Design Patterns——Combinator(功能模式)
|
10天前
|
设计模式 监控 Java
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
|
10天前
|
设计模式 Java 程序员
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
|
10天前
|
设计模式 算法 Java
【设计模式】JAVA Design Patterns——Builder(构造器模式)
【设计模式】JAVA Design Patterns——Builder(构造器模式)
|
10天前
|
设计模式 Java 容器
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
|
10天前
|
设计模式 Java API
【设计模式】JAVA Design Patterns——Aggregator Microservices(聚合器微服务模式)
【设计模式】JAVA Design Patterns——Aggregator Microservices(聚合器微服务模式)
|
5天前
|
设计模式 安全 Java
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
该文介绍了一种C++的编程技巧——奇异递归模板模式(CRTP),旨在让派生组件能继承基本组件的特定功能。通过示例展示了如何创建一个`Fighter`接口和`MmaFighter`类,其中`MmaFighter`及其子类如`MmaBantamweightFighter`和`MmaHeavyweightFighter`强制类型安全,确保相同重量级的拳手之间才能进行比赛。这种设计避免了不同重量级拳手间的错误匹配,编译时会报错。CRTP适用于处理类型冲突、参数化类方法和限制方法只对相同类型实例生效的情况。
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
|
7天前
|
设计模式 Java 数据库
【设计模式】JAVA Design Patterns——Converter(转换器模式)
转换器模式旨在实现不同类型间的双向转换,减少样板代码。它通过通用的Converter类和特定的转换器(如UserConverter)简化实例映射。Converter类包含两个Function对象,用于不同类型的转换,同时提供列表转换方法。当需要在逻辑上对应的类型间转换,或处理DTO、DO时,此模式尤为适用。
【设计模式】JAVA Design Patterns——Converter(转换器模式)
|
9天前
|
设计模式 存储 Java
【设计模式】JAVA Design Patterns——Command(事务模式)
【设计模式】JAVA Design Patterns——Command(事务模式)