//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//方法设计(算法设计)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//类设计原则(面向对象设计原则)
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