首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

用写文章的方式写程序--“三维度”逻辑编程语言的设计(1)

前几个月,看到园子里面一篇介绍逻辑编程语言的文章《逻辑式编程语言极简实现(使用C#)》,觉得作者写得很有趣,用讲故事的方式来讲述了一个极简逻辑编程语言的设计,于是我也萌生了写一篇有关逻辑编程语言的文章。说实话,我很早就接触了逻辑编程的概念,最开始学编程的时候就想着有朝一日搞搞AI,当年在AI界机器学习还仅仅是一个概念,最火的莫过于被称呼为“第五代编程语言”的逻辑程序语言--Prolog。可惜工作中始终没有机会实战这种编程语言,对Prolog也只是一知半解。直到2013年,我提出《业务分析三维度(场景+角色+时间)理论》后,思考如何将这个理论在编程上进行落地,才发现逻辑编程的概念非常符合这个三维度理论,而且这个理论跟DCI架构殊途同归,思想上是很类似的,具体内容可以参考我最近写的新书《SOD框架“企业级”应用数据架构实战》里面的【6.3.3 业务分析三维度理论 】,如下图。

02

面向接口编程

**面向接口编程** - 关心实现类有何能力,而不关心实现细节 - 面向接口的约定而不考虑接口的具体实现 ### 解析:         接口在这里边其实,他仅主要表示一种能力,这种能力主要体现在接口的方法,方法就描述了     接口能够实现的功能,但是呢,他没有任何的实现,这样的话就需要在实现类里面去实现接口中的     方法,完成具体的功能,我们在实际开发的时间经常需要使用,面向接口这种编程思想进行编程,     我们通常在定义接口时只关心实现类有何能力,就是能够做什么,而不关心具体实现,只描述它能     够做什么,面向接口的约定,而不考虑接口的具体实现。 **接口与抽象类的区别** - 相同点 - 都表示抽象特征 - 都不能被实例化 - 不同点 - 接口只能定义抽象方法,抽象类可以有实现方法 - 接口中不能有构造方法,抽象类可以有 - 一个类可以实现多个接口,但只能继承一个抽象类 ### 解析:         接口,我们可以把它理解成是比抽象类更抽象的一种类型,那么他和抽象类之间呢,有很多相似     的部分,第一个相同点,都表示抽象的特征,第二个是都不能够被实例化,不同点呢,接口当中只能     定义抽象方法,抽象类中呢,可以定义抽象方法,也可以定义实例方法,第二个不同点,接口中不能     有构造方法,但抽象类里可以有,第三个,区别不同点,一个类可以实现多个接口,但只能继承一个     抽象类,这是接口和抽象类的区别我们,在面试的时间是经常问到的一个面试问题。 ## 面向接口编程 **案例:实现防盗门功能** - 防盗门是一个门  is a的关系 - 防盗门有一个锁  has a的关系 - 上锁 - 开锁 ### 分析:         接下来我们就采用面向接口编程思想,来,再看一个案例,实现防盗门的功能,防盗门,是一个     门,我们通过is a去判断防盗门是不是门,是,我们就可以实现继承,防盗门,有一个锁,has a关     系就是有没有拥有,那上锁和开锁的能力,我们通过这个类的关系图,可以看到门拥有开和关的能力,     开关接口呢,上锁和开锁,一个实现防盗门,防盗门即继承了门又实现了接口,如何来实现这个功能     呢,首先我们去定义一个类,这个类就是到门,我们定义成抽象类,定义抽象方法必须要加Abstract     接口当中这两个可以省略,抽象内容呢,这两个属性,这两个关键词必须要加上去才表示抽象的行为。

03
领券