Java设计模式——设计原则

目录

面向对象基本原则

面向抽象原则

抽象(abstract)类

接口

面向抽象编程

开-闭原则

多用组合少用继承原则

继承与复用

组合与复用

高内聚-低耦合原则


面向对象基本原则

面向抽象原则

抽象(abstract)类

抽象(abstract)类具有如下特点:

  • 抽象类中可以有abstract方法,也可以有非abstract方法。
  • 抽象类不能用new运算符创建对象。
  • 如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的abstract方法,即在子类中将abstract方法重新声明,但必须去掉abstract修饰符,同时要保证声明的方法名字、返回类型、参数个数和类型与父类的abstract方法完全相同。
  • 作为上转型对象。尽管抽象类不能用new运算符创建对象,但其非abstract子类必须要重写全部abstract方法,这样一来,就可以让抽象类声明的对象成为其子类对象的上转型对象,并调用子类重写的方法。

接口

接口(interface)具有如下特点:

  • 接口中只可以有public权限的abstract方法,不能有非abstract方法。
  • 接口由类去实现,即一个类如果实现一个接口,那么它必须重写接口中的abstract方法,即将abstract方法重新声明,但必须去掉abstract修饰符,同时要保证声明的方法名字、返回类型、参数个数和接口中的方法完全相同。
  • 接口回调。接口回调是指可以把实现接口的类的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象方法的接口回调。

面向抽象编程

  • 是指当设计一个类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计的类中的重要数据是抽象类或接口声明的变量,而不是具体类声明的变量。

-闭原则

  • 设计应当对扩展开放,对修改关闭。
  • 如果设计遵守了“开-闭原则”,那么这个设计一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。

多用组合少用继承原则

继承与复用

通过继承来复用父类的方法的优点:

  • 子类可以重写父类的方法,即易于修改或扩展那些被复用的方法

通过继承复用方法的缺点:

  • 子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的方法的行为。
  • 子类和父类的关系是强耦合关系。
  • 通过继承进行复用也称“白盒”复用。

组合与复用

组合指的是一个类可以把对象作为自己的成员变量,即将其他对象作为自己的组成部分。

通过组合来复用父类的方法的优点:

  • 通过组合对象来复用方法也称“黑盒”复用。
  • 对象与所包含的对象属于弱耦合关系。
  • 当前对象可以在运行时动态指定所包含的对象。

通过组合对象来复用方法的缺点:

  • 容易导致系统中的对象过多。
  • 为了能组合多个对象,须仔细对接口进行定义。

高内聚-低耦合原则

如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低内聚的。

所谓低耦合就是尽量不要让一个类含有太多的其它类的实例的引用,以避免修改系统的其中一部分会影响到其它部分。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值