根据自身对面向对象方法与系统设计的理解,参照《重构-改善既有代码的设计》书中关于不良设计(违反SOLID)、不良代码(代码坏味道bad smells)的判别标准,分点讨论现有代码中的问题。#pragma once #include<iostream> #include<xstring> #include"student.h" using namespace std; class book { public: void setbooks(string name, string isbn, string information, int page, int price, int ben); void setbook();//输入书的信息 void setname();//输入名字 string getname();//返回书名 void setisbn();//输入isbn码 string getisbn();//返回isbn码 void setinformation();//输入图书信息 string getinformation();//返回图书信息 void setpage();//输入图书页数 int getpage();//返回图书页数 void setprice();//输入图书价格 int getprice();//返回图书价格 void setben();//输入书的数量 int getben();//返回书的数量 void reduceben();//书的数量减少 void plusben();//书的数量增加 void showbook();//显示书的各种信息 bool judge(string isbn1);//判断ISBN合法性 ~book(); private: string name, isbn, information; int price, page, ben; };
时间: 2024-01-26 09:04:53 浏览: 121
《重构 改善既有代码的设计》之代码的坏味道
现有代码中存在以下问题:
1. SRP(单一职责原则):book类承担了太多的职责,包括输入书的信息、展示书的各种信息、判断ISBN合法性等,违反了单一职责原则。
2. OCP(开放封闭原则):代码中没有考虑到未来需求的变化,如增加新的书籍类型或者增加不同的书籍属性,代码需要重新修改,违反了开放封闭原则。
3. LSP(里氏替换原则):代码中没有使用继承或多态等方式来统一管理不同类型的书籍,导致代码的扩展性和可维护性较差,违反了里氏替换原则。
4. DIP(依赖倒置原则):代码中依赖具体实现而非抽象,如使用了具体的string类型而非抽象的接口或基类,导致代码的耦合性较高,违反了依赖倒置原则。
5. 代码坏味道(bad smells):代码中存在重复代码、命名不规范、代码冗余等问题,需要进行重构来提高代码质量。
阅读全文