首页 > 其他分享 >design pattern 7 原则

design pattern 7 原则

时间:2024-02-21 21:35:59浏览次数:21  
标签:原则 对象 pattern 复用 依赖于 design Principle 应该

///-----------------23个设计模式对对7个原则的具体形式,7原则是23个模式的凝练------------------///
///----------------- target: 高内聚、低耦合 ------------------///

  1. 单一职责原则(Single Responsibility Principle - SRP):

    • 一个类应该只有一个引起变化的原因。换句话说,一个类应该只有一个职责。
  2. 开闭原则(Open/Closed Principle - OCP):

    • 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。在不修改现有代码的情况下,应该能够添加新的功能。
  3. 里氏替换原则(Liskov Substitution Principle - LSP):

    • 子类应该能够替换其基类并且程序行为不受影响。换句话说,一个子类应该可以替代其基类而不引起错误。
  4. 接口隔离原则(Interface Segregation Principle - ISP):

    • 不应该强迫客户端依赖于它们不使用的接口。一个类不应该被强迫实现它用不到的接口。
  5. 依赖倒置原则(Dependency Inversion Principle - DIP):

    • 高层次的模块不应该依赖于低层次的模块,而是应该依赖于抽象。抽象不应该依赖于具体实现,而具体实现应该依赖于抽象。
  6. 合成/聚合复用原则(Composition/Aggregation Reuse Principle - CARP):

    • 优先使用合成/聚合,而不是继承来实现代码复用。通过将对象组合到新的对象中,可以更灵活地达到代码复用的目的。
  7. 最小知识原则(Law of Demeter - LoD):

    • 一个对象应该对其他对象有尽可能少的了解。它不应该直接调用另一个对象的内部实现细节。

标签:原则,对象,pattern,复用,依赖于,design,Principle,应该
From: https://www.cnblogs.com/sqmw/p/18026247

相关文章

  • powerdesigner 生成mysql脚本,要求字段、表名有注释
    1.字段注释设置:在pdm视图中,Database-->EditCurrentDBMS。   找到MySql5.0-->Script-->Objects-->Column-->Add。a)原来的内容%20:COLUMN%[%National%?national]%DATATYPE%[%Unsigned%?unsigned][%ZeroFill%?zerofill][[.O:[characterset][charset]]%Ch......
  • Java中正则表达式(regex)匹配多行(Pattern.MULTILINE和Pattern.DOTALL模式)
    ​ Java中,正则表达式(regex)的处理是通过Pattern类实现的。Pattern类提供了多种标志(flags)来修改正则表达式的行为。其中,Pattern.MULTILINE和Pattern.DOTALL是两个常用的模式,它们分别用于处理多行文本和让.匹配包括行终止符在内的任意字符。 参考文档:Java中正则表达式(regex)匹......
  • IT解决方案设计的4个重要原则
    我们知道,无论是互联网相关专业,还是其他各个行业,好的方案在设计思路上都具备相同的设计思路和原则。在这些原则的基础上做设计,基本上都OK。安全性与可靠性安全性是整个项目建设中的重中之重,要通过各种技术确保系统应用的安全性。同时,也要具备系统的高度可靠性,这样才能保证网络客......
  • c# aveva marine hull design Design Explorer 的自定义
    首先显示界面如下左边为改造后的,右边为默认的界面1#将内部名称显示改为装配名显示2#直接显示了零件是否已经拉装配这部分代码也很简单其次改造下元素的右键菜单封装的方法,没写注释,看不明白可以联系我交流publicclassMyDesignExplorerRightClicKAtt:Attribute{......
  • Go 100 mistakes - #11: Not using the functional options pattern
      Here,WithPortreturnsaclosure.Aclosureisananonymousfunctionthatreferences variablesfromoutsideitsbody;inthiscase,theportvariable.Theclosurerespectsthe Optiontypeandimplementstheport-validationlogic.Eachconfigfieldr......
  • 设计模式--策略模式(Strategy Pattern)
    策略模式(StrategyPattern)是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户端。策略模式主要包含以下几个角色:Strategy(策略):这是一个接口,通常用于定义所有支持的算法的公共接口。ConcreteStrategy(具体策略):这是实现了S......
  • CodeForces 1928F Digital Patterns
    洛谷传送门CF传送门为什么我场上被卡常了。转化题意,将\(a,b\)差分,答案为在\(a,b\)选出相同长度的不含\(0\)的子段方案数。设\(a\)选出长度为\(i\)的不含\(0\)的子段方案数为\(x_i\),\(b\)选出长度为\(i\)的不含\(0\)的子段方案数为\(y_i\)。答案为\(\su......
  • 设计模式--桥接模式(Bridge Pattern)
    桥接模式(BridgePattern)是一种结构型设计模式,它主要是用于将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式主要包含以下几个角色:Abstraction(抽象类):定义抽象类的接口,它维护对Implementor的引用。RefinedAbstraction(扩充抽象类):扩充由Abstraction定义的接口。Implement......
  • 违反这些设计原则,系统就等着“腐烂”
    分享是最有效的学习方式。博客:https://blog.ktdaddy.com/老猫的设计模式专栏已经偷偷发车了。不甘愿做crudboy?看了好几遍的设计模式还记不住?那就不要刻意记了,跟上老猫的步伐,在一个个有趣的职场故事中领悟设计模式的精髓吧。还等什么?赶紧上车吧故事这段时间以来,小猫按照之前......
  • Python实现软件设计模式10:装饰器模式 Decorator Pattern
    概念是一种对象结构型模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为是一种用于替代继承的技术,他通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增......