zoukankan      html  css  js  c++  java
  • 设计模式之开闭原则

    开放封闭原则(Open Close Principle,简称OCP)尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化

    原始定义:Software entities (classes, modules, functions) should be open for extension but closed for modification。

    核心思想: 尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化

    通俗来讲: 一个软件产品在生命周期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计的时候尽量适应这些变化,以提高项目的稳定性和灵活性

    比如现在圣诞节,搞活动打折,有以下几种做法:

    1.新增打折接口

    2.修改原油NewBook类

    3.新增打折书籍类

    按照开放扩展关闭修改原则,应该是第三种方案,这样原有代码不会受到修改。

    //书籍接口
    public
    interface IBook { String getBookName(); String getAuthor(); int getPrice(); } //书籍类 public class NewBook implements IBook { private String bookName; private String author; private int price; public NewBook(String bookName, String author, int price){ this.bookName = bookName; this.author = author; this.price = price; } @Override public String getBookName() { return this.bookName; } @Override public String getAuthor() { return this.author; } @Override public int getPrice() { return this.price; } } //打折书籍类 public class OffBook extends NewBook { public OffBook(String bookName, String author, int price) { super(bookName, author, price); } public Double getPrice2(){ return this.getPrice()*0.7; } }
  • 相关阅读:
    吴恩达 — 神经网络与深度学习 — L1W3练习
    吴恩达 — 神经网络与深度学习 — L1W2练习
    吴恩达 — 神经网络与深度学习 — L1W1练习
    Scala基础编程
    HDFS常用命令介绍与使用
    关于Eureka客户端连接服务端报错问题Cannot execute request on any known server
    Spring Cloud_Ribbon
    Spring Cloud_eureka组件
    CAS单点登录入门
    Spring Boo数据访问JDBC
  • 原文地址:https://www.cnblogs.com/o-andy-o/p/10343090.html
Copyright © 2011-2022 走看看