Skip to content

架构、模式、技术

TommyLemon edited this page Nov 14, 2018 · 8 revisions

模板及批量化开发:
各种demo,复制>粘贴>改名>改代码。建议先把demo改为最适合你的项目的模板,之后能大幅减少重复代码。

以下这些都不用刻意去学,用多了自然会去思考和查阅资料,到时候就懂了。如果不实践,就算看了解释也往往是一知半解。
ZBLibrary的目标是容易上手、使用简单。所以不必刻意考虑用什么开发模式、设计模式。
只需要思考 怎么做或这么做 是不是能降低代码间的耦合,提高可扩展性、灵活性,同时保证性能和稳定性?
事实上所有模式都是为了这几点服务的,如果用了后没有明显效果甚至导致更差那就不值得用了。

设计思想模式:
采用MVP模式:
数据处理类作为Model(manager,util等包内的各种类);
布局XML和View及其子类和作为View(layout内XML和view包内的各种类,可将BaseView子类的整体看做View);
Activity,Fragment,Adapter,BaseView的子类等作为Presenter(activity,fragment,adapter等包内的各种类)。
model包内的模型类 和 interface包内的回调接口 作为Presenter的助理,在M-P-M, V-P-V之间传达信息。

开发设计模式:
1.工厂模式(各种base)
2.单例模式(各种manager)
3.建造者模式(BaseViewAdapter#getView复用逻辑等)
4.观察者模式(OnHttpResponseListener, BaseView.OnViewClickListener)等

模块化:
1.代码封装(library所有代码)
2.Java代码文件分包(base,interfaces,manager,model,ui,util)
3.组件的分拆和组合等(BaseView及其子类)

Java面向对象特性:
1.封装(library工程及所有类和XML代码)
2.继承(各种base及其子类)
3.多态(abstract方法(interface里的方法也都是abstract))

Java开发原则:
1.单一职责原则(Presenter之外的类)
2.里氏替换原则(base及其子类)
3.接口隔离原则(interface的使用)
4.依赖倒置原则(base及其子类)
5.开闭原则(改demo,不改library的逻辑(配置可改))
6.最少知道原则(HttpRequest、各种传参(传入参数的类型一般以能满足要求的类型为准,能用View,ViewGroup尽量不要用TextView,LinearLayout等其子类))

Java组件:
1.集合(List,Map等)
2.泛型(BaseListActivity,BaseAdapter,CacheManager等)
3.多线程(BaseActivity#runThread,ThreadManager)
4.反射(onReturnClick,onForwardClick)等、网络(HttpManger)
5.其它,如基本类型、各种对象类型等

持久化存储:
1.SharedPreference(Cache,DataKeeper,SettingUtil等)
2.SQLite(Demo工程中SQLHelper)

数据结构:
1.XML(布局及其它类型的资源代码)
2.JSON(JSON,HttpManager等)

Clone this wiki locally