我们要牢记一些设计原则:
· 封装变化
· 多用组合,少用继承
· 为交互对象之间的松耦合设计而努力
所有的函数对象都有原型对象,原型对象是函数对象的每个实例所公用的。
只有函数形式定义的对应才有实例,而以对象字面量定义的对象则没有实例,也就没有原型对象。
静态方法和动态方法
在面向对象编程中,
静态方法是类方法,不需要实例化类,
而动态方法是对象的方法,必须首先实例化才能使用。
静态类的作用:
1.可实现全局唯一;
2.不可以被实例化,可以直接使用。
3.可以被继承和重载;
封装:通过将一个方法或者属性声明为私有的,可以让对象的实现细节对其他对象保密以降低对象之间的耦合程度,可以保持数据的完整性并对其修改方式加以约束,这样可以是代码更可靠,更易于调试。
封装是面向对象的设计的基石。
可见,使用私有属性是降低耦合度的一种方法。
工厂模式和单例模式:
它们都含有一个公有的静态方法,用来返回类的实例。
在工厂方法中使用静态类的原因是,只能有一个工厂类的实例来生成其它对象。,
单例模式中有个private的构造方法或没有构造方法,也就是无法被实例化;
抽象类是类的模板,接口是方法的集合。
抽象类是同类事物的模板,比如狗类是藏獒类、军犬类、牧羊犬类的模板;抽象类一般比较灵活。
而接口是类(同类或不同类)所具有的方法(行为),
比如,叫,是狗类,鸟类,人类都具有的行为,但这三类却不是同一类。
也就是说,接口面向的不一定要是同一类型的class,可以是不同类型的class。
其主要定义类必须要实现的方法。
接口里面不能含有属性及方法的具体实现。