`

面向对象设计模式的六大基本原则(设计类的原则)

 
阅读更多

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//方法设计(算法设计)

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//类设计原则(面向对象设计原则)

http://blog.csdn.net/zhengzhb/article/category/926691

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

一个类只有一个引起变化的原因。

一个类只有一个独立责任,不负责其他职责

 

2.开放封闭原则OCP(Open Closed Principle):

软件实体对扩展开放,对修改封闭。

对功能扩展开放,对功能修改封闭。

 

3.里氏替换原则LSP(Liskov Substitution Principle):

子类的实例能够替换其父类的实例。

子类尽量不重写父类,尽量用扩展。

 

4.依赖倒置原则DIP(Dependency Inversion Principle):

依赖抽象不要依赖具体实现。

设计的类依赖接口

 

5.接口分离原则ISP(Interface Segregation Principle):

使用多个专门的接口比使用单一的总接口要好。一个类对另一个的依赖性建立在最小的接口上。

 

6.迪米特法则LoD(Law of Demeter):也称为最少知识原则LKP(Least Knowledge Principle)

一个对象应该对其他对象有最少的了解。

设计类的时候用用别人越少,用别人越简单越好

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//类之间关系设计(设计模式)

http://blog.csdn.net/zhengzhb/article/category/926691

---------------------------------------------------------------------------------------------------------------

//创建型模式(类之间创建与被创建的解决方案)(abps)

 

*SimpleFactory简单工厂模式

*Factory Method工厂方法模式

*Abstract Factory抽象工厂模式(工厂是主类)(解决多个子类生成实例的问题,方便扩展添加子类)

http://jishudaren.iteye.com/blog/2295901

*Builder生成器模式(生成器是主类)(复杂对象创建过程与表示分离的解决方案)

diector定义产品的构建过程,builder创建部件和组装产品,并提供返回产品的接口。

http://jishudaren.iteye.com/blog/2295872

 

Prototype原型模式(类实例复用问题的解决方案)

实现要点:用已存在的类A实例创另一个类A实例,可以用A的clone方法。

 (http://jishudaren.iteye.com/blog/2295773

*Singleton单例模式(只准生成一个类实例的解决方案)

实现要点:uniqueInstance是本身静态实例,静态方法instance()是获得或创建实例uniqueInstance 。

http://jishudaren.iteye.com/blog/2295768

 ---------------------------------------------------------------------------------------------------------------

//结构型模式(类之间结构调整降耦的解决方案)(ABCDFFP)

 

Adapter适配器模式* (老接口适应新接口的解决方案)

(把已有的接口转化成需要的接口)(主类适配器)

http://jishudaren.iteye.com/admin/blogs/2295133

Bridge桥接模式* (使接口和实现独立变化的解决方案)

(接口是一个类A,实现是一个类B,A引用B)(主类是A)

http://jishudaren.iteye.com/admin/blogs/2295118) 

Composite组合模式*(使用树状结构的解决方案)

(A不继承B,而引用使用B)(主类是A)

http://jishudaren.iteye.com/admin/blogs/2295125

Decorator装饰模式(可以使功能独立逐渐加强的解决方案)

(在本类的fun中调用被装饰者的同名方法fun并且在调用后再加上自己的功能加强的一些逻辑代码)(主类是装饰者)

http://jishudaren.iteye.com/admin/blogs/2295128

 

Facade外观模式* (统一外观不暴露子系统解决方案)

(让接口更好看更简洁,隐藏下面复杂的接口)(主类是外观类)

http://jishudaren.iteye.com/admin/blogs/2295129

Flyweight享元模式(复用频繁使用的对象解决方案)

实现要点,有一个缓存管理器,缓存复用对象。复用对象有唯一标识。

http://jishudaren.iteye.com/admin/blogs/2295131

Proxy代理模式*(处理和控制真实对象解决方案)

(为对象提供一种代理以控制对这个对象的访问)(主类是代理者)

http://jishudaren.iteye.com/admin/blogs/2295132

 

---------------------------------------------------------------------------------------------------------------

//行为型模式(类之间某种行为的解决方案)

 

Chain Of Responsibility 职责链模式 

Command命令模式 

Interpeter解释模式 

Iterator迭代者模式(集合遍历的解决方案)

        实现要点:迭代器持有集合引用,并知道遍历的第一个,当前位置,下一个,结束。集合创建并返回迭代器。

Mediator中介者模式*(多类相互交互改成通过一个中间者交互的解决方案)

        实现要点:中介者持有同事列表,和提供通讯接口(要能查到指定的同事),同事持有中间者引用。

Memento 备忘录模式 

 

 

Observer观察者模式* (行为依赖的解决方案)

         实现要点,被观察者Subject维持一个观察者Observer列表,被观察者变化时调用观察者的方法。

State状态模式*(同一个调用类在不同状态下有不同反应的解决方案)

         实现要点,类可以设置不同状态,状态里有这个类这个状态下的反应。

Strategy策略模式*(同一个调用类在不同策略下有不同策略实现的解决方案)

         实现要点,类可以设置不同策略,策略里有这个类在这个策略下方法现实。

 

Template Method模板方法模式(固定步骤行为的解决方案)

         实现要点:固定步骤在父类中定义成抽象方法。

Visitor 访问者模式(对象可以选择个不同访问器的解决方案)

        实现要点,某个元素接受某个访问器,这个访问器在访问这个元素,本质是元素选择不同的访问器

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//项目结构(框架设计模式)

1.mvc mvp mvvm

http://wenzongliang.iteye.com/blog/2240284

android中的mvc,mvp对应

http://www.tuicool.com/articles/2qMnmi

 

2.三层结构

UI层

---------

业务逻辑层(商务逻辑层)

---------

数据层

http://baike.baidu.com/link?url=xsVBhJ9vQNIL4v6T0agt40Rlk_n0lCvCyGiqlh2PP5lUWUJWkilTRebAoqRlygbCLIsCsaTU1WL011-vy5sf3K

  • 大小: 34.1 KB
分享到:
评论

相关推荐

    23种 设计模式---面向对象的基本原则

    NULL 博文链接:https://hudeyong926.iteye.com/blog/779070

    JAVA设计模式六大原则详细讲解(面向对象语言通用)

    1.单一职责原则: 不要存在多于一个导致类变更的原因 2.里氏替换法则:子类可以扩展父类的功能,但不能改变父类原有的功能 3.依赖倒置原则:面向接口编程 4.接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对...

    GOF的23种设计模式,及设计模式的六大原则

    GOF是设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software(中译本名为《设计模式——可复用面向...他们总结了23个设置模式,以下将给出这23个设计模式的说明,及设计模式的六大原则.

    24种设计模式介绍与6大设计原则

    里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能...

    java面向对象编程源码

    其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了Sun公司的SCJP(Sun Cer......

    设计模式--可复用面向对象软件的基础

    本书作者均是国际公认的面向对象软件领域的专家。 Erich Gamma博士是瑞士苏黎士国际面向对象技术软件中心的技术主管。 Richard Helm博士是澳大利亚悉尼IBM顾问集团公司面向对象技术公司的成员。 Ralph Johnson...

    敏捷软件开发:原则、模式与实践.pdf

     ●面向对象设计原则:本书包含了11个面向对象设计原则,涵盖了包的设计和类的设计。这是我所见过的对这方面内容讲解的最清晰、最彻底、最深刻的唯一的一本书。  ●设计模式:本书中讲述了23个设计模式,并都有...

    设计模式Demo

    里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能...

    Java23种基本的设计模式整料整理学习源码示例zip

    里氏代换原则(Liskov Substitution Principle) 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的...

    C#设计模式.PDF

    一、 C# 面向对象程序设计复习 5 二、 设计模式举例 5 三、 先有鸡还是先有蛋? 7 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 8 五、 .net本质 9 C#设计模式(2) 11 一、 "开放-封闭"原则(OCP) 12 二、 里氏代换...

    JAVA面向对象编程(孙卫琴).z02

    其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了Sun公司的SCJP(Sun Certified Java ...

    C#设计模式大全

    一、 C# 面向对象程序设计复习 二、 设计模式举例 三、 先有鸡还是先有蛋? 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 五、 .net本质 C#设计模式(2) 一、 "开放-封闭"原则(OCP) 二、 里氏代换原则(LSP) ...

    Java 面向对象编程.pdf

    内容简介 《Java 面向对象编程》内容由浅入深,紧密结合实际,...其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。

    设计模式总结

    -- 一,六大设计原则 一,六大设计原则 单一职责原则(Single Responsibility Principle,简称SRP) 有且仅有一个原因引起类的变更。 里氏替换原则(Liskov Substitution Principle,LSP) 只要父类出现的地方都...

    JAVA面向对象编程(孙卫琴).part05

    其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了Sun公司的SCJP(Sun Certified Java ...

    Java面向对象编程.part1.rar

    Java开发技术大全.part1.rar 免积分下载(解压需5个文件part1,...其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。

    Java面向对象编程.zip

    其最大特色是以六条主线贯穿全书:面向对象编程思想、java语言的语法、java虚拟机执行java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了sun公司的scjp(sun certified java ...

    JAVA面向对象编程(孙卫琴).z03

    其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了Sun公司的SCJP(Sun Certified Java ...

Global site tag (gtag.js) - Google Analytics