本篇文章通过概念、实例分析,解读面向对象六大设计原则,希望能对你有所帮助。
//执行体
class A {
// H:相当于任务的执行者
private void doA( H h){
h.doMyTask();//此处调用接口的方法,达到 闭 的效果,只管我要干啥,具体怎么干可以不管
}
}
---------------------------
// 接口
interface H{
void doMyTask();
}
---------------------------
//任务执行者实现体
class B implements H{
void doMyTask(){
sys.out("干B的活");
}
}
class C implements H{
void doMyTask(){
sys.out("干C的活");
}
}
//操作者
class K {
A a =new A();
a.doA(new B);
a.doA(new C);
a.doA(new H(){
doMyTask(){
sys.out("干随时扩展自定义的活");
}
});
}
//食堂
class ShiTang{
void ganHuo(Person p){
p.chiFan();
}
}
//抽象
abstarct class Person{
public abstarct foid chiFan();
public void shuiJiao(){
//do ....
}
}
//小明
class xiaoMing extends Person{
public void chiFan(){
sys.out("小明吃饭");
}
}
//小兵
class xiaoBing extends Person{
public void chiFan(){
sys.out("小兵吃饭");
}
}
怎么写出优雅的代码?看了一些开源库比如OkHttp、Retrofit等,真的很佩服里面的设计之精巧,对于设计模式的应用恰到好处。然而在项目中,我们在业务开发的时候很少会有这样的代码。因为,大部分而言对于讲究快的移动开发来说,代码的设计精巧已经不是那么的合适了。不是不重要,而是需要平衡投入和产出。所以,本篇追本溯源,聊聊面向对象的设计原则。设计模式只是在此基础上提炼的基本套路,可能生帮硬套会有点麻烦,但是如果在平时的开发过程中小到业务需求的开发,大到项目的架构,以此为准则,一定会有很好的改观。
小贴士
本文由原作者井方哥独家授权Open软件开发小组发布,著作权归原作者所有。如需转载请联系原作者申请授权。