0
点赞
收藏
分享

微信扫一扫

计算机在我们生活中的应用

最不爱吃鱼 2024-11-02 阅读 8

文章目录


在这里插入图片描述

一、项目总体要求

分为两次完成。第一次为基本原则的应用,第二次为设计模式的应用。

第一次为文档撰写和代码实现,针对一个问题应用3种以上(包括3种)的面向对象设计基本原则进行优化。

1、优化项目业务介绍
目前手中待优化项目主要解决哪方面的业务问题。将实现的功能做以简单介绍。

2、初始方案
(1)、原有方案类的设计(类图)
(2)、初始代码

3、优化方案
(1)优化理由陈述
请说明原有程序存在的问题,根据什么原则对此问题进行的改进。此处可以借助类图进行说明

(2)类图
将程序优化后的类图粘贴到此处,最好能够在图中标明使用设计原则的部分及名称

(3)优化后的代码
可以将代码拷贝到这里,并对优化后部分的代码进行加粗显示。

<设计模式应用>

第二次为文档撰写和代码实现,题目自拟,针对一个问题应用2种以上(包括2种)的面向对象设计模式进行优化。

  1. 优化案例业务介绍
    目前手中待优化程序主要解决哪方面的业务问题。将实现的功能做以简单介绍。

  2. 初始方案
    (1)、原有方案类的设计(类图)
    (2)、初始代码
    可以将代码拷贝到这里,也可以将代码文件进行编号,在这里进行引用。

  3. 优化方案
    (1)优化理由陈述
    请说明原有程序存在的问题,根据什么模式对此问题进行的改进。此处可以借助类图进行说明。

(2)类图
将程序优化后的类图粘贴到此处,最好能够在图中标明使用设计模式的部分及名称。

(3)化后的代码
可以将代码拷贝到这里,并对优化后部分的代码进行加粗显示。

第一次文档要求

1、题目描述

2、设计:

(1)优化理由陈述,说明原有程序存在的问题,根据什么原则对此问题进行的改进。

(2)类图(针对一个项目运用多个原则画在一个类图上)

(3)实现代码

3、评分标准如下

(1)原则选择的合理性
是否能够指出代码中存在的不合理性,并能够选择合理的设计原则进行优化。

(2)代码实现的合理性
代码对设计原则的切实实施,将设计原则真正落实到代码上。

第二次文档要求

1、题目描述

2、设计

(1) 优化理由陈述,分别介绍在哪里应用了哪些设计模式,并说明理由。

(2)类图(针对一个项目运用多个模式画在一个类图上)

(3)实现代码

3、评分标准如下

(1)2个以上模式

设计模式应用个数应在2——6之间,鼓励多运用设计模式。

(2)模式合理性

模式应用的合理性指的是确实运用得很巧妙地解决问题为非常优秀,解决了实际问题为很好,模式得到应用为合格,如果用得太牵强则需要改进。

(3)类图的合理性
类图的正确性是指在当前业务背景下,类图是否准确地表达了设计模式的意图。

(4)代码实现规范
代码的规范性是指源代码的编写是否遵守了编码规范。

二、示例

下面会提供一个示例性的框架来指导的文档撰写和代码实现

这里仅提供一个概念性的描述以及伪代码示例。

第一次文档 - 设计原则应用

1、题目描述

假设我们要开发一个订单处理系统,该系统用于处理来自客户的订单请求,包括创建订单、支付订单以及取消订单等功能。

2、设计:

(1)优化理由陈述

原有系统的问题在于:

  • 类职责过于集中,单一类承担了过多的责任,违反了单一职责原则(SRP)。
  • 类之间耦合度高,修改一处可能影响其他多处,违反了开闭原则(OCP)。
  • 难以扩展新功能,如增加新的支付方式,这体现了里氏替换原则(LSP)没有得到良好遵循。
(2)类图

【这里应该插入一个类图,展示原始设计以及优化后的设计。原始设计中可能会有一个Order类负责所有操作,而优化后的设计中会有多个类,如Order, OrderService, PaymentService等,每个类负责一部分功能。】

(3)实现代码

原始代码:

public class Order {
    public void createOrder() { ... }
    public void payOrder() { ... }
    public void cancelOrder() { ... }
}

优化后的代码:

// Order类专注于订单数据
public class Order {
    private String orderId;
    // 其他属性...
}

// OrderService类处理订单逻辑
public class OrderService {
    public void createOrder(Order order) { ... }
    public void cancelOrder(Order order) { ... }
}

// PaymentService类处理支付逻辑
public class PaymentService {
    public void payOrder(Order order) { ... }
}

第二次文档 - 设计模式应用

1、题目描述

继续上面的订单处理系统,我们希望进一步优化代码结构,使得系统更加灵活和易于维护。

2、设计:

(1) 优化理由陈述

现有系统的问题在于:

  • 当添加新的支付方式时,需要修改PaymentService类,违反了开闭原则(OCP)。
  • 创建订单时需要一系列复杂的初始化步骤,这使得createOrder方法变得庞大且难以管理。

我们考虑引入工厂模式(Factory Pattern)来创建不同类型的Order实例,以及策略模式(Strategy Pattern)来处理不同的支付策略。

(2)类图

【这里应该插入一个类图,展示优化后的设计。例如OrderFactory类用于创建Order实例,PaymentStrategy接口定义支付策略,ConcretePaymentStrategy类实现具体的支付策略】

(3)实现代码
// OrderFactory类
public class OrderFactory {
    public Order createOrder(OrderType type) { ... }
}

// PaymentStrategy接口
public interface PaymentStrategy {
    void pay(Order order);
}

// ConcretePaymentStrategy类
public class CreditCardPayment implements PaymentStrategy {
    public void pay(Order order) { ... }
}

public class PayPalPayment implements PaymentStrategy {
    public void pay(Order order) { ... }
}

// OrderService类使用策略模式
public class OrderService {
    private PaymentStrategy paymentStrategy;

    public void setPaymentStrategy(PaymentStrategy strategy) {
        this.paymentStrategy = strategy;
    }

    public void processOrder(Order order) {
        // 使用策略模式处理支付
        paymentStrategy.pay(order);
    }
}

可以根据上述指导来完成具体实现,并确保遵循标准中的各项要求。也可以点击下方链接获取更多

三、源码获取:

主页私信:面向对象、三级项目

举报

相关推荐

0 条评论