![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
黑暗行动
足球
乐观
架构设计
展开
-
设计模式-里氏替换原则(2)
设计原则1 单一职责原则2 里氏替换原则3 依赖倒置原则4 接口隔离原则5 迪米特法则6 开闭原则类继承优点代码共享, 减少创建类的工作量, 每个子类都拥有父类的方法和属性;提高代码的重用性;子类可以形似父类, 但又异于父类, “龙生龙, 凤生凤, 老鼠生来会打洞”是说子拥有父的“种”, “世界上没有两片完全相同的叶子”是指明子与父的不同;提高代码的可扩展性, 实现...原创 2018-07-17 16:04:37 · 717 阅读 · 2 评论 -
设计模式-观察者模式(10)
观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/subscribe),它是一个在项目中经常使用的模式,其定义如下:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的优点● 观察者和被观察者之间是抽象耦合如此设计,则不管是增加观察者还是被观察者都非常容易扩展,而且在Java中都已经实现的抽...原创 2018-12-06 00:37:59 · 145 阅读 · 0 评论 -
设计模式-建造者模式(9)
建造者模式(Builder Pattern) 也叫做生成器模式。将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示。建造者模式的优点●封装性使用建造者模式可以使客户端不必知道产品内部组成的细节, 如例子中我们就不需要关心每一个具体的模型内部是如何实现的, 产生的对象类型就是CarModel。● 建造者独立, 容易扩展BenzBuilder和BMWBuilder是相互...原创 2018-11-27 23:18:23 · 281 阅读 · 0 评论 -
设计模式-代理模式(8)
代理模式也叫做委托模式, 它是一项基本设计技巧。而且在日常的应用中, 代理模式可以提供非常好的访问控制。代理模式的优点● 职责清晰真实的角色就是实现实际的业务逻辑, 不用关心其他非本职责的事务, 通过后期的代理完成一件事务, 附带的结果就是编程简洁清晰。● 高扩展性具体主题角色是随时都会发生变化的, 只要它实现了接口, 甭管它如何变化, 都逃不脱如来佛的手掌(接口) , 那我们的代理类...原创 2018-10-26 00:07:01 · 148 阅读 · 0 评论 -
设计模式-单例模式(7)
单例模式的优点1)由于单例模式在内存中只有一个实例, 减少了内存开支, 特别是一个对象需要频繁地创建、 销毁时, 而且创建或销毁时性能又无法优化, 单例模式的优势就非常明显。2)由于单例模式只生成一个实例, 所以减少了系统的性能开销, 当一个对象的产生需要比较多的资源时, 如读取配置、 产生其他依赖对象时, 则可以通过在应用启动时直接产生一个单例对象, 然后用永久驻留内存的方式来解决(在Ja...原创 2018-10-25 23:32:02 · 147 阅读 · 0 评论 -
设计模式-如何学习
熟悉UML关系图泛化:可以简单的理解为继承关系;实现:一般是接口和实现类之间的关系;关联:一种拥有关系,比如老师类中有学生列表,那么老师类和学生类就是拥有关系;聚合:整体与部分的关系,但是整体和部分是可以分离而独立存在的,如汽车类和轮胎类;组合:整体与部分的关系,但是二者不可分离,分离了就没有意义了,例如,公司类和部门类,没有公司就没有部门;依赖:一种使用关系,例如创建 A 类必须...原创 2018-10-28 23:50:06 · 188 阅读 · 0 评论 -
设计模式-开闭原则(6)
设计原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则开闭原则开闭原则是Java世界里最基础的设计原则, 它指导我们如何建立一个稳定的、 灵活的系统, 先来看开闭原则的定义:一个软件实体如类、 模块和函数应该对扩展开放, 对修改关闭。什么是开闭原则开闭原则的定义已经非常明确地告诉我们: 软件实体应该对扩展开放, 对修改关闭, 其含义是说一个软件实体...原创 2018-08-15 13:41:38 · 3228 阅读 · 2 评论 -
设计模式-单一职责原则(1)
设计原则1 单一职责原则2 里氏替换原则3 依赖倒置原则4 接口隔离原则5 迪米特法则6 开闭原则单一职责原则应该有且仅有一个原因引起类的变更。我相信, 即使是一个初级的程序员也可以看出这个接口设计得有问题, 用户的属性和用户的行为没有分开, 这是一个严重的错误! 应该把用户的信息抽取成一个BO(Business Object, 业务对象) , 把行为抽取成一个Biz(Business ...原创 2018-07-14 16:41:19 · 268 阅读 · 0 评论 -
设计模式-接口隔离原则(4)
设计原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则接口隔离原则定义接口分为2种:● 实例接口(Object Interface) , 在Java中声明一个类, 然后用new关键字产生一个实例, 它是对一个类型的事物的描述, 这是一种接口。 比如你定义Person这个类, 然后使用Person zhangSan=new Person()产生了一个...原创 2018-07-18 12:07:20 · 551 阅读 · 0 评论 -
设计模式-依赖倒置原则(3)
设计原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则依赖倒置原则的定义高层模块不应该依赖低层模块, 两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。高层模块和低层模块容易理解, 每一个逻辑的实现都是由原子逻辑组成的, 不可分割的原子逻辑就是低层模块, 原子逻辑的再组装就是高层模块。 那什么是抽象? 什么又是细节呢? 在Java语言...原创 2018-07-18 09:58:09 · 811 阅读 · 0 评论 -
设计模式-迪米特法则(5)
设计原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则迪米特法则定义一个对象应该对其他对象有最少的了解。通俗地讲, 一个类应该对自己需要耦合或调用的类知道得最少, 你(被耦合或调用的类) 的内部是如何复杂都和我没关系, 那是你的事情, 我就知道你提供的这么多public方法, 我就调用这么多, 其他的我一概不关心。 迪米特法则含义迪米特法...原创 2018-07-23 17:08:08 · 437 阅读 · 0 评论 -
接口,抽象类,类使用心得
今天说说接口,抽象类,类的使用心得接口:定义准则(模版) 定义全局属性 定义方法抽象类:实现接口中定义的通用方法,所谓通用就是指所有子类使用此方法业务逻辑一样 不实现接口中定义的不通用方法,所谓不通用就是指所有子类使用业务逻辑不一致,只是部分子类一样,留给子类自己实现(或 实现个基本逻辑,留给子类@Override 也行) 增加新的抽象方法 增加新的方法类:实现不通...原创 2019-05-23 00:00:20 · 218 阅读 · 0 评论