软件设计模式--如果说我比别人看得更远些,那是因为我站在了巨人的
有幸找到一本书,并耐心的看了看内容,深受吸引,也对这本书书的讲述方法与内容有较为急切的分享想法。--《大话设计模式》(源代码下载地址:http://www.cnblogs.com/Files/cj723/BigTalkDesignPattenSourceCode.rar)
如果想成为一名更优秀的软件设计师,了解优秀软件设计的演变过程,比学习优秀设计本身更有价值,因为设计的演变过程中蕴藏着大智慧。
如果说数学是思维的体操,那设计模式就是面向对象编程思维的体操。
面向对象三大特性:封装,继承,多态。对于编程而言,最忌讳的便是不容易维护,灵活性差,不容易拓展以及复用。当我们学习了面向对象的分析设计编程思想,开始考虑通过封装继承多态,把程序的耦合度降低,用设计模式使得程序更加的灵活,容易修改,并且易于复用。
1.类与实例
一切事物皆为对象。对象是一个自包涵的尸体,用一组可识别的特性和行为来标识。
类就是具有相同的属性和功能的对象的抽象的集合。(类名称首字母要大写,多个单词则各个首字母大写,对外公开的方法需要用public修饰符)
实例就是一个真实的对象,而实例化就是创建对象的过程。
2.构造方法
构造方法又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new时候调用。所有类都有构造方法,如果你不编码,则系统默认生成空的构造方法,如果你有定义的构造方法,那么默认的构造方法就会失效了。
3.方法重载
方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。注意方法重载时两个方法必须用相同的方法名,但参数类型或个数必须要有所不同,否则重载就没有意义。
4.属性与修饰符
属性是一个方法或一对方法,但在调用它的代码看来,它是一个字段,即属性适合于以字段的方式使用方法调用的场合。字段是存储类要满足其设计所需要的数据,字段是与类相关的变量。
属性有两个方法get和set。 get访问器返回与声明的属性相同的数据类型,表示的意思是调用时可以得到内部字段的值或引用;set访问器没有显示设置参数,但它有一个隐式参数,用关键词value表示,它的作用是调用属性时可以给内部的字段或引用赋值。
5.封装
每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因为对象不必依赖其他对象来完成自己的操作。
封装有很多好处,第一,良好的封装能够减少耦合,第二,类内部的实现可以自由的修改,第三,类具有清晰的对外接口。
6.继承
继承者还可以理解为是对被继承者的特殊化,因为他除了具备被继承者的特性外,还具备自己独有的个性。继承定义了类如何相互关联,共享特性。继承的工作方式是定义父类和子类,或叫做基类和派生类,其中子类继承父类的所有特性,子类不但继承了父类的所有特性,还可以定义新的特性。
如果子类继承于父类,第一,子类拥有父类非private的属性和功能,第二,子类具有自己的属性和功能,及子类可以扩展父类没有的属性和功能,第三,子类还可以以自己的方式实现父类的功能(方法重写)。
继承是有缺点的,那就是父类变则子类不的不变,继承会破坏包装,父类实现细节暴露给子类。继承显然是一种类与类之间强耦合的关系。
7.多态
多态表示不同的对象可以执行相同的动作,但要通过他们自己的实现代码来执行。
多态有几点需要注意:第一,子类以父类的身份出现。第二,子类在工作时以自己的方式来执行。第三,子类以父类的身份出现时,子类特有的属性和方法不可以使用。