java设计模式 -------- 基本原则

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020

            在看设计模式的基本原则之前,先来看下一些基本的面向对象知识。

1. 面向对象思想的建立:

           面向的对象的三原则,即继承,封装和多态,那么这些又是如何定义,又如何区分呢?

           封装  :  隐藏实现的一些细节,提供一种公开的访问方式。

                                     eg. private可以把一些成员变量和成员方法给隐藏起来。

           继承  :  可以具备某些已经存在的功能。

           多态  :  对象在不同时刻体现不同的优势。

                                      eg. List list = new ArrayList();

                                             list = new LinkedList();

2. 设计思想的区别:

            抽象类 : 是对一组具有相同的属性和方法的在逻辑上有关系的一种抽象。

                              is a的关系。

            接口 : 对一组具有相同的属性和方法的在逻辑上不相关的一种抽象。

                           like a的关系。

3. 面向对象设计的几个基本的原则:

   总原则:开闭原则

     开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码。


   A:单一职责

     系统中的第一个对象应该只有一个单独的职责,所有对象关注的应该是自身职责的完成。

     基本思想:高内聚,低耦合。

   B:开闭原则

     一个对象的扩展开放,对修改关闭。

     基本思想:对类的改动是通过增加代码进行的,而不是修改现有的代码。

   C:里氏替换原则

     在任意父类出现的地方,都可以使用子类来代替。

   D:依赖注入原则

     要依赖于抽象,不要依赖于具体的实现。

     基本思想:在开发中尽量的面向接口编程。

   E:接口分离原则

     不要去使用一些不需要使用的功能。

     基本思想:一个接口不要提供太多的行为。

   F:迪米特原则

     一个对象对其他的对象应该尽可能少的了解。

     基本思想:降低耦合。

   G:合成复用原则

     优先使用组合而不是继承原则,即尽量首先使用合成/聚合的方式,而不是使用继承。

     基本思想:在利用对象的最低点,要优先考虑组合,而不是继承,因为父类的任何改变都可能直接影响子类的行为。

     eg. 把大象装进装箱:

                            继承实现:

         class A{方法(){"打开冰箱"}}

                              class B extends A{方法(){"装进大象"}}

                              class C extends B{方法(){"关闭冰箱"}}

       组合实现:

         class Demo{

           new A().方法(); 

           new B().方法();

           new C().方法();

         }

   

   以上就是设计模式的基本原则,看起来好象很简单,但在实际应用的过程中还是会遇到不少的问题,在此记录下,以督促自己在以后的软件开发中尽量应用设计模式,从而更加深刻的理解。以上笔记,是我自己在听"51cto"设计模式一视频中所做的,后面有可能会继续做。

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值