面向对象设计原则-1

目录

面向对象设计原则概述

单一职责原则  

实例 

实例解析

开闭原则 

 实例 

代码: 


面向对象设计原则概述

可维护性(Maintainability):指软件能够被理解、改正、适应及扩展的难易程度
可复用性(Reusability):指软件能够被重复使用的难易程度
        指导性原则,非强制性原则
面向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源代码的复用,另一方面要确保系统能够易于扩展和修改,具有良好的可维护性

 

单一职责原则  

 单一职责原则定义

        单一职责原则是最简单的面向对象设计原则,用于控制类的粒度大小
 

单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中

Single Responsibility Principle (SRP): Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.

单一职责原则分析 
        1.一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小
        2.当一个职责变化时,可能会影响其他职责的运作
        3.将这些职责进行分离,将不同的职责封装在不同的类中
        4.单一职责原则是实现高内聚、低耦合的指导方针

以上要求,需要设计人员具有较强的分析设计能力和实践经验。

实例 

 实例说明

 

某软件公司开发人员针对CRMCustomer Relationship Management,客户关系管理)系统客户信息图表统计模块提出了如图2-1初始设计方案

1 初始设计方案结构图

2-1GetConnection()方法用于连接数据库,FindCustomers()用于查询所有的客户信息,CreateChart()用于创建图表,DisplayChart()用于显示图表。

以上类的设计有无问题,为什么?

显然:职责太多,耦合程度高,不符合单一职责原则,需要改进。

实例解析

抽象出职责中可能会出现公共调用的部分,并将此封装成独立类
数据库连接方法会公用,所以独立一个类
查找客户信息会公用,所以独立一个类

 

 

开闭原则 

开闭原则定义 
开闭原则是面向对象的可复用设计的第一块基石,是最重要的面向对象设计原则 

开闭原则:软件实体应当对扩展开放,对修改关闭

Open-Closed Principle (OCP): Software entities should be open for extension, but closed for modification.

开闭原则分析  

        在开闭原则的定义中,软件实体可以是一个软件模块、一个由多个类组成的局部结构或一个独立的类
        开闭原则是指软件实体应尽量在不修改原有代码的情况下进行扩展

 抽象化是开闭原则的关键
相对稳定的抽象层 + 灵活的具体层:
对系统应该设计一个相对稳定的抽象层,通过具体的实现来达到功能的扩展,要修改系统的行为,只需要增加具体的抽象类类来实现业务,达到开闭原则。


方法:对可变性封装原则(Principle of Encapsulation of Variation, EVP):找到系统的可变因素并将其封装起来

 实例 

某公司员工的工资计算方式为:

1)总经理:年薪50-100

2)部门经理:月工资,底薪10000加绩效工资

3)技术员:月工资:底薪4000加绩效工资的一半

4)行政人员:月工资,3000

5)销售员,月工资,底薪0加销售总额的5%提成。

该公司每天都会调整每个岗位的底薪,还会根据业务发展的需要增加或减少岗位

根据以上要求,设计类或类图

 

代码: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像污秽一样

谢谢谢谢谢谢谢谢谢谢谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值