Java设计模式——面向对象的几个基本原则
1. 面向抽象原则1.1 抽象类
特点:
1.抽象类中的abstract方法可有可无,也可以有非abstract方法
2.抽象类不能用new创建对象
3.抽象类的非抽象子类必须重写父类的abstract方法
4.作为向上转型对象。抽象类不能创建对象,但可以让抽象类的对象成为其非抽象子类的向上转型对象,调用子类的方法
3. 多用组合少用继承原则方法复用的两种最常用的技术就是类继承和对象组合。
3.1 继承与复用子类通过继承父类可以复用父类的方法
优点:
1.子类在需要的时候可以重写父类的方法,易于修改或扩展那些被复用的方法
缺点:
1.无法在运行期间改变从父类继承的方法的行为
2.继承是强耦合的关系,即当父类的方法的行为改变时,必然导致子类相应方法改变
3.通过继承复用也称为“白盒”复用,这样就是说父类的内部细节对于子类而言是可见的
3.2 组合与复用一个类将其它对象作为自己的组成部分,即Has-A,这样就可以通过委托其它对象调用其方法来达到复用的目的。
优点:
1.组合复用称为“黑盒”复用,即当前对象对所包含对象的具体细节是不可见的
2.组合是弱耦合的关系,即修改所包含的对象的类的代码,不必修改当前类的代码
3.当前对象可以在运行时动态指定所包含的对象
缺点:
1.导致系统中对象过多
2.要组合多个对象时,必须仔细地对接口进行定义
4. 高内聚-低耦合原则高内聚:类中的方法是一组相关的行为
低耦合:尽量不要让一个类含有太多其它类的实例引用,以避免“牵一发而动全身”