对《大话设计模式》的学习总结,以备后用。
编程初学者存在的问题
所有编程初学者都会有这样的问题,就是碰到问题直觉的用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程,这其实是用计算机的方式去思考,比如一个计算机程序,先要求输入两个数和运算符,然后根据运算符判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足当前的需求,程序不容易维护,不容易扩展,更不容易复用,从而达不到高质量代码的要求。这是面向过程编程存在的问题
面向对象编程
- 对象作为软件的最小单元,封装了程序和数据
- 面向对象的三大特性:封装、继承、多态
- 利用面向对象的特性,降低程序的耦合度,提高可维护性、可扩展性、灵活性
简单工厂模式、
在软件实施过程中,当有一个需求出现时,需要根据需求进行分析,划分功能点,然后对功能点进行实现,如果只是对各个功能点进行单独实现,那这是结构化过程化的编程,到后期随着需求、功能的增多,代码变得庞大臃肿,难以维护。
在面向对象的编程中,通过对需求分析,整理成功能点,然后对功能点进行分类,将共性的东西放在一起形成基类,然后各功能点继承、扩展该基类。最后,定义一个工厂类,根据实际输入产生不同功能点的类的对象,降低了代码的耦合度,让代码变得更易于维护、易于扩展、易于复用。
核心步骤:
需求分析→功能点整理→分类(找出各个功能点的共性)→抽象形成基类→各功能点的类继承基类→定义工厂方法→根据具体输入产生具体功能点类的对象→使用对象
优点:降低了代码的耦合度,易于扩展、易于维护、易于复用
缺点:每次扩展都需要修改工厂类,这违反了开闭原则,如果功能增多的情况下,会让工厂类变得臃肿,不易于维护。
网友评论