七大软件设计原则

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。用抽象构建架构,用实现扩展细节
优点:提高软件系统的可复用性及可维护性
核心思想:面向抽象编程

例子:我们版本更新,我尽可能不修改源代码,但是可以增加新功能(生活中体现:很多互联网公司都实行弹性制作息时间,规定每天工作8小时。意思就是说,对于每天工作8小时这个规定是关闭的,但是你什么时候来,什么时候走是开放的。早来早走,晚来晚走。)
复制代码

1.当前创建接口课程类

public interface ICourse { 
        //获取id
        public Integer getId(); 
        //获取名字
        public String getName(); 
        //获取价格
        public Double getPrice(); 
    }
复制代码

2.创建java课程类继承课程类

public class JavaCourse implements ICourse{ 
           private Integer Id; 
           private String name; 
           private Double price; 
           
           public JavaCourse(Integer id, String name, Double price) {
                this.Id = id; 
                this.name = name; 
                this.price = price; 
           } 
           
           public Integer getId() { 
                return this.Id; 
           } 
           
           public String getName() { 
                return this.name; 
           } 
           
           public Double getPrice() {
                return this.price; 
           } 
   } 
复制代码

3.创建java课程打折类继承java课程

public class JavaDiscountCourse extends JavaCourse { 
         public JavaDiscountCourse(Integer id, String name, Double price) { 
            super(id, name, price); 
         } 
         public Double getOriginPrice(){ 
            return super.getPrice(); 
             
         } 
         public Double getPrice(){ 
            return super.getPrice() * 0.61;
         } 
   } 
复制代码

原文 

https://juejin.im/post/5ef06749f265da02a73477bc

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 七大软件设计原则

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址