阅读大话设计模式的一点笔记

原先所写的程序,不容易维护,灵活性差,不容易扩展,更谈不上复用,因此面对需求变化,加班加点,对程序动大手术的那种无耐也就非常正常的事了。

面向对象分析设计编程思想,开始考虑通过封装、继承、多态把程序的耦合度降低(传统印刷术的问题就在于所有的字都刻在同一版面上造成耦合度太高所制),开始用设计模式使得程序更加的灵活,容易修改,并且易于复用。

中国古代的四大发明,另三种应该都是科技的进步,伟大的创造或发现。而唯有活字印刷,实在是思想的成功,面向对象的胜利。

“所有编程初学者都会有这样的问题,就是碰到问题就直觉的用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号,然后根据运算符号判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足实现当前的需求,程序不容易维护,不容易扩展,更不容易复用。从而达不到高质量代码的要求。”

自己感悟:这块说的非常有道理,不只是编程初学者,学过面向过程语言的都有这个弊病(比如学过c),没有利用编程语言的特点巧妙的去设计和解决问题。比如艺术创作,艺术家有艺术的处理。而作为程序员,需要作出技术性的处理。

“准确的说,就是让业务逻辑与界面逻辑分开,让它们之间的耦合度下降。只有分离开,才容易达到容易维护或扩展。”

自己感悟:业务逻辑与界面逻辑分开,就是常说的面向接口编程,把接口(或调用)和实现分离。或者对实现某个功能的一段代码,利用封装的思想,封装成方法,在多处调用,避免多处出现同一段相同代码,造成维护困难。尽量复用,减少复制。

‘简单工厂模式’,也就是说,到底要实例化谁,将来会不会增加实例化的对象(比如增加开根运算),这是很容易变化的地方,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。

自己感悟:工厂模式,可以快速实例化不同类的对象。如果这些类有不同的属性,并且有不同的功能。把对象可以比作机器人,各种具有不同功能机器人,需要做不同人,从工厂生产不同的机器人,然后让机器人帮我们完成不同的事情即可。就像小菜写的程序,有计算加法的机器人,计算乘法的机器人。。。

面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。

你可能感兴趣的:(java)