文章目录
- 一、项目总体要求
- <设计模式应用>
- 第一次文档要求
- 第二次文档要求
 
- 二、示例
- 第一次文档 - 设计原则应用
- 1、题目描述
- 2、设计:
- (1)优化理由陈述
- (2)类图
- (3)实现代码
 
 
- 第二次文档 - 设计模式应用
- 1、题目描述
- 2、设计:
- (1) 优化理由陈述
- (2)类图
- (3)实现代码
 
 
 
- 三、源码获取:

一、项目总体要求
分为两次完成。第一次为基本原则的应用,第二次为设计模式的应用。
第一次为文档撰写和代码实现,针对一个问题应用3种以上(包括3种)的面向对象设计基本原则进行优化。
1、优化项目业务介绍
 目前手中待优化项目主要解决哪方面的业务问题。将实现的功能做以简单介绍。
2、初始方案
 (1)、原有方案类的设计(类图)
 (2)、初始代码
3、优化方案
 (1)优化理由陈述
 请说明原有程序存在的问题,根据什么原则对此问题进行的改进。此处可以借助类图进行说明
(2)类图
 将程序优化后的类图粘贴到此处,最好能够在图中标明使用设计原则的部分及名称
(3)优化后的代码
 可以将代码拷贝到这里,并对优化后部分的代码进行加粗显示。
<设计模式应用>
第二次为文档撰写和代码实现,题目自拟,针对一个问题应用2种以上(包括2种)的面向对象设计模式进行优化。
-  优化案例业务介绍 
 目前手中待优化程序主要解决哪方面的业务问题。将实现的功能做以简单介绍。
-  初始方案 
 (1)、原有方案类的设计(类图)
 (2)、初始代码
 可以将代码拷贝到这里,也可以将代码文件进行编号,在这里进行引用。
-  优化方案 
 (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);
    }
}
可以根据上述指导来完成具体实现,并确保遵循标准中的各项要求。也可以点击下方链接获取更多
三、源码获取:
主页私信:面向对象、三级项目


















