class User {
var uid : String
var profileImageURL : String
init(uid : String, profileImageURL : String) {
self.uid = uid
self.profileImageURL = profileImageURL
}
}
如果我的项目要从上述用户模型开始,并且我有一个大型应用程序,则要在该用户中初始化20多个文件,如果要添加新的必需项属性,例如age,我必须为每个文件修复初始化程序。更糟糕的是,我将不得不进入每个初始化程序之后,并在其自己的行上设置new属性。
如果在生产过程中需要我添加25个新属性,那将是一场噩梦。
处理将来可能会发生变化的大型模型的最佳方法是什么?
答案 0 :(得分:2)
我不会在20多个位置初始化对象。这使代码易碎。在用户管理之外添加一个额外的层,您可以在其中询问当前用户/询问任何用户。并在一个位置进行初始化。
答案 1 :(得分:1)
您做这样的事情
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="64dp"
android:padding="10dp"
android:background="@color/black"
>
<ImageView
android:src="@drawable/ic_nav_about_active"
android:id="@+id/image"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentLeft="true"
/>
<TextView
android:textSize="13dp"
android:textColor="@color/colorred"
android:text="Testing"
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
/>
<TextView
android:textSize="13dp"
android:textColor="@color/colorred"
android:text="Testing is awecome"
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
android:layout_below="@id/title"
/>
<ImageView
android:id="@+id/btn_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="24dp"
android:src="@drawable/exo_controls_pause"/>
</RelativeLayout>
或编写一个Codable类直接对字典进行解码