设计模式面向对象原则(转载)

开闭原则:对扩展开放,对修改关闭。例子:招安-弼马温
里氏替换原则:父类出现的地方,子类必定也能出现。例 子:孙悟空在生死薄上删了所以猴子,猴子以后不会死,那么孙悟空和猊猴这种猴子的子类也不会死。反例:在JAVA API中Property类是HashMap的子类,HashMap里键值是string, object,而Property里键值是string, string,违反了里氏替换原则。
依赖倒置原则:抽象层不依赖与具体层,应该反过来具体依赖于抽象层,低层次依赖于高层次。
接口隔离原则:使用多个单一接口比使用一个多功能的接口好
聚合/组合原则:能使用聚合/组合的地方就不要用继承
迪米特法则:也叫最少知识原则,就是一个类要知道的不用的类越少越好,例:通过朋友和一个陌生人交流,就不要依赖于那个陌生人。反例:JAVA API中的java.awt.Point中的属性是公共的。


另:
JAVA和C中的struct区别:struct里只有变量,而java中的Bean里还有方法。
JAVA中序列化:如果不序列化无法在将对象写入流。
依赖,聚合,组合的区别:
  • 耦合性主键增大
  • 依赖为局部变量,方法参数,静态方法的调用
  • 聚合为声明了一个变量或属性,不进行实例化,与主程序没有共同的生命周期
  • 组合为聚合后并且实例化了对象,拥有同样的生命周期
简单工厂优点:
  • 客户端免除直接创建对象的责任 
简单工厂缺点:
  • 无所不能的一个类,上帝类。使得工厂类在项目中非常重要
  • 要判断什么时候创建什么类,如果业务比较多的话会很难维护
  • 简单工厂使用静态方法作为工厂方法,使得子类不能继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值