Skip to content

Commit

Permalink
feat(post): 完善文章
Browse files Browse the repository at this point in the history
  • Loading branch information
李济芝 committed Jul 4, 2024
1 parent 9b73671 commit bfd07f1
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 11 deletions.
11 changes: 3 additions & 8 deletions blog-site/content/posts/java/Java面向对象编程.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ slug: "rookie-object-oriented"
## 概览
面向对象简称OO(`object-oriented`)是相对面向过程(`procedure-oriented`)来说的,是一种编程思想,Java就是一门面向对象的语言,包括三大特性和六大原则。
其中,三大特性指的是封装、继承和多态。六大原则指的是单一职责原则、开放封闭原则、迪米特原则、里氏替换原则、依赖倒置原则以及接口隔离原则。
其中,单一职责原则是指一个类应该是一组相关性很高的函数和数据的封装,这是为了提高程序的内聚性,而其他五个原则是通过抽象来实现的,目的是为了降低程序的耦合性以及提高可扩展性。
单一职责原则是指一个类应该是一组相关性很高的函数和数据的封装,这是为了提高程序的内聚性,而其他五个原则是通过抽象来实现的,目的是为了降低程序的耦合性以及提高可扩展性。

面向对象编程简称OOP(`Object-oriented programming`),是将事务高度抽象化的编程模式。
面向对象编程是以功能来划分问题的,将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对应对象,通过不同对象之间的调用,组合成某个功能解决问题。
Expand Down Expand Up @@ -2523,10 +2523,6 @@ class WebSiteFactory{
- 系统有大量相似对象。
- 需要缓冲池的场景。





### 代理模式
代理模式,给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。
代理模式是为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象。
Expand Down Expand Up @@ -2983,7 +2979,6 @@ class RemoteCommand {

}
```

命令模式是一种使用频率非常高的设计模式,它可以将请求发送者与接收者解耦,请求发送者通过命令对象来间接引用请求接收者,使得系统具有更好的灵活性和可扩展性。
在基于GUI的软件开发,无论是在电脑桌面应用还是在移动应用中,命令模式都得到了广泛的应用。
在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。
Expand Down Expand Up @@ -3184,7 +3179,7 @@ class Calculator {
缺点:
- 可利用场景比较少。
- 对于复杂的文法比较难维护。解释器模式会引起类膨胀,如果一个语言包含太多文法规则,类的个数将会急剧增加,导致系统难以管理和维护。
- 解释器模式采用递归调用方法。
- 解释器模式采用递归调用方法。

使用场景:
- 对于一些固定文法构建一个解释句子的解释器。
Expand Down Expand Up @@ -4350,4 +4345,4 @@ class ObjectStructure {
使用场景:
- 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。访问者可以对功能进行统一,可以做报表、UI、拦截器与过滤器。
- 对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。
- 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,也不希望在增加新操作时修改这些类。
- 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,也不希望在增加新操作时修改这些类。
Original file line number Diff line number Diff line change
Expand Up @@ -1896,7 +1896,7 @@ <h2 id="post_single_title">面向对象</h2>
<div class="post_content markdown"><h2 id="概览">概览</h2>
<p>面向对象简称OO(<code>object-oriented</code>)是相对面向过程(<code>procedure-oriented</code>)来说的,是一种编程思想,Java就是一门面向对象的语言,包括三大特性和六大原则。
其中,三大特性指的是封装、继承和多态。六大原则指的是单一职责原则、开放封闭原则、迪米特原则、里氏替换原则、依赖倒置原则以及接口隔离原则。
其中,单一职责原则是指一个类应该是一组相关性很高的函数和数据的封装,这是为了提高程序的内聚性,而其他五个原则是通过抽象来实现的,目的是为了降低程序的耦合性以及提高可扩展性。</p>
单一职责原则是指一个类应该是一组相关性很高的函数和数据的封装,这是为了提高程序的内聚性,而其他五个原则是通过抽象来实现的,目的是为了降低程序的耦合性以及提高可扩展性。</p>
<p>面向对象编程简称OOP(<code>Object-oriented programming</code>),是将事务高度抽象化的编程模式。
面向对象编程是以功能来划分问题的,将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对应对象,通过不同对象之间的调用,组合成某个功能解决问题。</p>
<p>面向对象是对比面向过程来说的,面向过程编程简称POP(<code>Procedural oriented programming</code>)。
Expand Down
2 changes: 1 addition & 1 deletion docs/posts/essays/scheduled-job/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1677,7 +1677,7 @@ <h3 id="pom">pom</h3>
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @return 结果
</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="nf">whiteList</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">invokeTarget</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">packageName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StringUtils</span><span class="p">.</span><span class="na">substringBefore</span><span class="p">(</span><span class="err">i</span><span class="n">nvokeTarget</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;(&#34;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">packageName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StringUtils</span><span class="p">.</span><span class="na">substringBefore</span><span class="p">(</span><span class="n">invokeTarget</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;(&#34;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StringUtils</span><span class="p">.</span><span class="na">countMatches</span><span class="p">(</span><span class="n">packageName</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;.&#34;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">count</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">CharSequenceUtil</span><span class="p">.</span><span class="na">containsAnyIgnoreCase</span><span class="p">(</span><span class="n">invokeTarget</span><span class="p">,</span><span class="w"> </span><span class="n">ScheduleConstants</span><span class="p">.</span><span class="na">JOB_WHITELIST_STR</span><span class="p">);</span><span class="w">
Expand Down
2 changes: 1 addition & 1 deletion docs/posts/java/rookie-object-oriented/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1896,7 +1896,7 @@ <h2 id="post_single_title">面向对象</h2>
<div class="post_content markdown"><h2 id="概览">概览</h2>
<p>面向对象简称OO(<code>object-oriented</code>)是相对面向过程(<code>procedure-oriented</code>)来说的,是一种编程思想,Java就是一门面向对象的语言,包括三大特性和六大原则。
其中,三大特性指的是封装、继承和多态。六大原则指的是单一职责原则、开放封闭原则、迪米特原则、里氏替换原则、依赖倒置原则以及接口隔离原则。
其中,单一职责原则是指一个类应该是一组相关性很高的函数和数据的封装,这是为了提高程序的内聚性,而其他五个原则是通过抽象来实现的,目的是为了降低程序的耦合性以及提高可扩展性。</p>
单一职责原则是指一个类应该是一组相关性很高的函数和数据的封装,这是为了提高程序的内聚性,而其他五个原则是通过抽象来实现的,目的是为了降低程序的耦合性以及提高可扩展性。</p>
<p>面向对象编程简称OOP(<code>Object-oriented programming</code>),是将事务高度抽象化的编程模式。
面向对象编程是以功能来划分问题的,将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对应对象,通过不同对象之间的调用,组合成某个功能解决问题。</p>
<p>面向对象是对比面向过程来说的,面向过程编程简称POP(<code>Procedural oriented programming</code>)。
Expand Down

0 comments on commit bfd07f1

Please sign in to comment.