马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 liuning90s 于 2022-9-19 16:53 编辑
面向对象编程七大基本原则,使用InoProshop来讲解实现,设计模式入门
一、面向对象编程原则概述
1.1 软件的可维护性和复用性
可维护性较低的软件设计,通常由于如下四个原因造成:
过于僵硬(Rigidity) :灵活性不够
过于脆弱(Fragility) :健壮性(鲁棒性)
不够复用率低(Immobility) :不能重用
黏度过高(Viscosity) :高耦合,关联性太高
一个好的系统设计应该具备如下三个性质:
可扩展性(Extensibility)
灵活性(Flexibility)
可插入性(Pluggability)
程序设计原则:高内聚,低耦合
二、面向对象编程的七大原则
面向对象的设计原则(7大原则)
★ 1、开闭原则: 是总纲,告诉我们要对扩展开放,对修改关闭;
★ 2、里氏替换原则: 告诉我们不要破坏继承体系;
★ 3、依赖倒置原则:告诉我们不要破坏继承体系;
★ 4、单一职责原则: 告诉我们实现类/方法要职责单一;
★ 5、接口隔离原则: 告诉我们在设计接口的时候要精简单一;
★ 6、迪米特法则:告诉我们要降低耦合度;
★ 7、合成复用原则:告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。
2.1开闭原则
开闭原则定义:
一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为
1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何的修改。
如何实现开放封闭原则
实现开闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以修改就是封闭的;而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过覆写其方法来改变固有行为,实现新的拓展方法,所以就是开放的。
软件设计要容易维护又不容易出问题的最好方法就是多扩展、少修改
废话不多说,使用汇川InoProshop开干(本人使用的InoProshop V1.6.2,支持面向对象继承、接口、属性、方法等,学习者需要有这些基础,如有需要的话,本人可以再出一些教程)
1、为方便实验观察,先造轮子工具,print函数
2.1
2、 优化前代码
2.2
仿真
2.3
分析:
1、在上面的代码中,计算的种类可能增加,可能减少。如果要增加一个乘法类,那么就必须要修改oper方法。而且这中修改在目前的程序结构下是无法避免的。
2、现在要变更的最有可能的地方是:每一个计算类(增加,减少,修改)
3、对计算方法进行抽象,然后在oper类中使用多态来封闭这种变化
优化后的类图
2.4
优化后程序
1 定义一个计算接口
2 定义加法实现类
3 定义减法实现类
4 定义工厂类
5 测试
程序分析:
1、上面的程序中,如果要增加一个乘法计算。需要增加一乘法类,然后修改Factory类。
2、在factory类中使用了多态特性。客户端只需要向Factory类发起请求,Factory类会向客户端返回一个计算对象。(客户端不用去管这个计算对象是怎么来的>
|