在面向对象编程中,继承是一个基本概念,它与多态共同构成了类的父子继承关系(Is-A关系)。Car对象可以被当作Vehicle对象处理,Truck对象也可以被当作Vehicle对象处理。一方面,这种抽象方式使得同一段代码能为Car和Truck对象提供同样的处理操作,使代码更加简洁;另一方面,如果要扩展新的Vehicle对象类型,比如Bike或Van,不再需要修改代码,只需添加新的类即可。
在大多数情况下,最棘手的问题往往是对象的创建。在面向对象编程中,每个对象都使用特定类的构造器进行实例化操作。
这里存在两个问题:其一,类应该保持对扩展的开放和对修改的关闭(开闭原则);其二,每个类应该只有一个发生变化的原因(单一职责原则)。每增加新的类造成主要代码修改时会打破开闭原则,而主类除了其固有功能之外还负责实例化vehicle对象,这种行为将会打破单一职责原则。
在这种情况下就需要一种更好的设计方案。我们可以增加一个新类来负责实例化vehicle对象,称之为简单工厂模式。
资料来源:《Java设计模式及实践》,文章链接:https://developer.aliyun.com/article/726838
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。